Sql-Server-2005

創建視圖時無權使用“dbo”

  • October 7, 2015

我想創建一個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 

引用自:https://dba.stackexchange.com/questions/117271