Sql-Server-2005
創建視圖時無權使用“dbo”
我想創建一個
user
對伺服器內兩個數據庫的最低訪問權限。將商業智能工具集成到我們數據庫中的第三方人員將使用該使用者。他們已經指定他們只需要創建視圖。所以我在伺服器上創建了一個新使用者,然後使用每個數據庫上的數據庫屬性來授予他們對該數據庫的
SELECT
權限CREATE VIEW
。然後我使用該使用者登錄 SSMS,並嘗試創建一個視圖,但我收到一條消息說
‘dbo’ 要麼不存在,要麼我無權使用它。
我試圖通過反複試驗自己解決這個問題,但我只是不了解 sql server 上的使用者權限。我做錯了什麼,我需要採取哪些額外/不同的步驟?
請記住,我不希望他們擁有比他們需要的最低限度更多的控制權。
您的使用者應該有權修改 dbo 架構。您可以通過將權限分配給使用者所屬的角色來實現:
所以它就像:
CREATE ROLE Limitedaccess; GO GRANT CREATE VIEW TO Limitedaccess; GO GRANT SELECT ON SCHEMA::dbo TO Limitedaccess; GO CREATE USER user WITHOUT LOGIN; --- this would be the user here GO EXEC sp_addrolemember 'Limitedaccess', 'User'; GO
授予權限後,重新執行之前的
CREATE VIEW
語句。現在它將成功。GRANT ALTER ON SCHEMA::dbo TO Limitedaccess; GO