2013/12/27

結構描述 ' ',資料庫 ' ',物件 ' ' 沒有 EXECUTE 權限。

我在作完資料庫移機的事情之後
執行網站 看到了這樣的錯誤:
結構描述 'xxx1 ',資料庫 'xxx2 ',物件 'xxx3 ' 沒有 EXECUTE 權限。
在網路上查了一下發現一篇解決方法:


http://hi.baidu.com/jinzesudawei/item/e1c18c262b2b168e9d63d1c6
連結內容摘要:

  1. 在資料庫xxx2 身上按右鍵「屬性」
  2. 在左邊選單按一下「權限」
  3. 在你想要給予權限的登入帳號增加「執行」的權限


    我照作,問題解決了,但我覺得這很奇怪
    因為在舊資料庫的設定並沒有給予「執行」的權限

    === 正解在此

    經過大師指點,在舊資料庫的設定是更細節的設定
    可以只授權給某個資料表、預存程序、函數等

    設定方法:
  4. 打開資料庫xxx2 點開安全性
  5. 在你想要給予權限的登入帳號身上按右鍵「屬性」
  6. 左邊選單按一下「安全性實體」
  7. 右邊按一下「搜尋」
  8. 您要加入什麼物件?選下列類型的所有物件
  9. 假設要開放權限的是預存程序,請選預存程序
  10. 在上方列表會看到所有預存程序 可以在這設定執行權限

    ===

    題外話,資料庫有一個設定是啟用 CLR 整合


    http://msdn.microsoft.com/zh-tw/library/ms254506%28v=vs.80%29.aspx
    連結內容摘要:
    執行以下SQL
    spconfigure 'clr enabled', 1
    GO
    RECONFIGURE
    GO


    可以用
    select [value
    in_use] from sys.configurations where name = 'clr enabled'
    來檢查目前資料庫的設定值


    參考微軟的說明
    連結內容摘要:
    CLR 整合意味著您現在可以使用任何 .NET Framework 語言 (包括 Microsoft Visual Basic .NET 和 Microsoft Visual C#) 撰寫預存程序、觸發程序、使用者定義型別、使用者定義函數 (純量和資料表值) 和使用者定義彙總函式。


    因為我原先以為這個是開啟授權的正解

    所以多了這個題外話 (現在修文了)

沒有留言: