我在作完資料庫移機的事情之後
執行網站 看到了這樣的錯誤:
結構描述 'xxx1 ',資料庫 'xxx2 ',物件 'xxx3 ' 沒有 EXECUTE 權限。
在網路上查了一下發現一篇解決方法:
http://hi.baidu.com/jinzesudawei/item/e1c18c262b2b168e9d63d1c6
連結內容摘要:
- 在資料庫xxx2 身上按右鍵「屬性」
- 在左邊選單按一下「權限」
- 在你想要給予權限的登入帳號增加「執行」的權限
我照作,問題解決了,但我覺得這很奇怪
因為在舊資料庫的設定並沒有給予「執行」的權限
=== 正解在此
經過大師指點,在舊資料庫的設定是更細節的設定
可以只授權給某個資料表、預存程序、函數等
設定方法: - 打開資料庫xxx2 點開安全性
- 在你想要給予權限的登入帳號身上按右鍵「屬性」
- 左邊選單按一下「安全性實體」
- 右邊按一下「搜尋」
- 您要加入什麼物件?選下列類型的所有物件
- 假設要開放權限的是預存程序,請選預存程序
- 在上方列表會看到所有預存程序 可以在這設定執行權限
===
題外話,資料庫有一個設定是啟用 CLR 整合
http://msdn.microsoft.com/zh-tw/library/ms254506%28v=vs.80%29.aspx
連結內容摘要:
執行以下SQL
spconfigure 'clr enabled', 1
GO
RECONFIGURE
GO
可以用
select [valuein_use] from sys.configurations where name = 'clr enabled'
來檢查目前資料庫的設定值
參考微軟的說明
連結內容摘要:
CLR 整合意味著您現在可以使用任何 .NET Framework 語言 (包括 Microsoft Visual Basic .NET 和 Microsoft Visual C#) 撰寫預存程序、觸發程序、使用者定義型別、使用者定義函數 (純量和資料表值) 和使用者定義彙總函式。
因為我原先以為這個是開啟授權的正解
所以多了這個題外話 (現在修文了)