2013/12/27

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

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


http://hi.baidu.com/jinzesudawei/item/e1c18c262b2b168e9d63d1c6
連結內容摘要:
1. 在資料庫xxx2 身上按右鍵「屬性」
2. 在左邊選單按一下「權限」
3. 在你想要給予權限的登入帳號增加「執行」的權限


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

=== 正解在此

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

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

===

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


http://msdn.microsoft.com/zh-tw/library/ms254506%28v=vs.80%29.aspx
連結內容摘要:
執行以下SQL
sp_configure '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#) 撰寫預存程序、觸發程序、使用者定義型別、使用者定義函數 (純量和資料表值) 和使用者定義彙總函式。


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

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

沒有留言: