Sql-Server

在 SQL Server 上配置使用者登錄和儲存過程權限

  • August 15, 2011

我是一名完成 Web 應用程序的軟體開發人員。該應用程序使用我的 SQL Server 2008“SQLServer_1”中的數據庫“DB1”。

我想創建一個受限使用者,Web 應用程序將在其連接字元串中使用該使用者。該使用者將被允許執行儲存過程列表,僅此而已。因此,不應允許使用者執行該列表之外的即席 SQL 或其他儲存過程。

我在“使用者”和“登錄”之間有點混亂,我真的不知道應該在哪裡創建新的“帳戶”。

我應該遵循哪些步驟?

提前致謝。

這一切都歸結為範圍。登錄是伺服器級帳戶,使用者是數據庫級帳戶。使用者需要映射到登錄名,因此您將首先創建您的登錄名(同時創建一種向伺服器進行身份驗證的方式)。接下來,在應用程序的數據庫中,您將創建使用者。執行此操作時,您可以選擇該使用者代表的登錄名。您將選擇您之前創建的登錄名。然後,您可以將權限分配給您希望它能夠執行的儲存過程。當然,這樣做的點擊率較低:

create login [your login name here] from windows; --if the login is a Windows account
create login [your login name here] with password 'some super secret password'; --if not a Windwos account
use [DB1];
create user [your login name here] for login [your login name here];
grant execute on [your stored procedure here] to [your login name here];
grant execute on [another stored procedure here] to [your login name here];
...

引用自:https://serverfault.com/questions/301160