4

我想向用戶授予權限創建,修改和執行存儲過程,但沒有創建其他數據庫對象的能力。我將它們從角色db_ddladmin中排除,但明確授予了「創建過程」和「執行」權限。這些權限顯示在有效權限列表中。然而,當我嘗試創建此登錄一個存儲過程,我得到以下錯誤:「要麼不存在,或者您沒有使用它的權限‘的SQL Server 2005 - 授予權限創建存儲過程(但沒有其他物體)

’指定的架構名稱」 DBO

有什麼建議嗎?

回答

2

如果你可以創建(或修改)和執行存儲過程,你可以做任何事情。

執行對存儲過程意味着過程的上下文中的所有其他權限。因此,如果您可以更改程序運行它,則限制其他任何內容都沒有意義。你可以讓程序代表你的代理行事。

+0

這不是很好。其他DBMS允許您創建存儲過程,而不必擁有創建其他類型對象(如表)的權限。您無法創建存儲過程來執行您沒有權限的操作。因此,例如,您可以授予某人創建存儲過程的權限以讀取或更新數據庫中的表,但他們無法執行創建表或創建存儲過程等操作,以將所有表數據庫。 – 2013-05-20 13:55:12

5

用戶可以創建他們自己的模式程序。所以你可以爲用戶設置一個模式來完成開發工作。然後,如果需要dbo,管理員可以在開發完成後將其放在那裏。

+1

同意。創建一個用戶將能夠創建其sprocs的新模式。授予他們對該架構的訪問權限,並且您應該很好去! – 2008-10-23 01:51:05

相關問題