我最近將數據庫遷移到SQL Azure。當我嘗試在SQL Azure的這個數據庫上執行存儲過程,我收到以下錯誤:授予SQL Azure上的執行權限
The EXECUTE permission was denied on the object 'Log_Save', database 'MyDatabase', schema 'dbo'.
我的問題是,我該如何授予EXECUTE權限存儲過程(以及讀/寫訪問表)在SQL Azure上?
謝謝!
我最近將數據庫遷移到SQL Azure。當我嘗試在SQL Azure的這個數據庫上執行存儲過程,我收到以下錯誤:授予SQL Azure上的執行權限
The EXECUTE permission was denied on the object 'Log_Save', database 'MyDatabase', schema 'dbo'.
我的問題是,我該如何授予EXECUTE權限存儲過程(以及讀/寫訪問表)在SQL Azure上?
謝謝!
訣竅是你必須創建一個自定義的「執行者」角色,然後授予執行權限。
在你的主數據庫,如果你沒有一個已經先創建一個用戶:
CREATE USER MyUser FOR LOGIN MyLogin WITH DEFAULT_SCHEMA=[dbo]
GO
然後,在新的DB:
CREATE ROLE [db_executor] AUTHORIZATION [dbo]
GO
GRANT EXECUTE TO [db_executor]
GO
sp_addrolemember @rolename = 'db_executor', @membername = 'MyUser'
sp_addrolemember @rolename = 'db_datareader', @membername = 'MyUser'
sp_addrolemember @rolename = 'db_datawriter', @membername = 'MyUser'
您可以隨時使用this工具管理您的Azure SQL用戶並授予他們正確的權限。
相關的喬·艾布拉姆斯的回答,您可以授予執行權限給單個用戶:
GRANT EXECUTE TO testuser
GO
謝謝,這是正確的金錢! (也應該是接受的答案恕我直言......) – easuter 2016-02-15 13:35:38