Sql-Server
如何使用 T-SQL(不是 SSMS)將登錄名映射到數據庫
我正在編寫一個程序,要求我在程式碼中分配所有權限和所有內容。我陷入了這部分:
我只想做相當於點擊 msdb 數據庫的“映射”下的小框並將該使用者分配給 SqlAgentUser 角色。我需要一個能夠添加/編輯 SQL Server 代理作業的使用者。我可以使用 SSMS 正確設置設置,但我一生都無法弄清楚如何在原始 SQL 中進行設置。
我已經查看了ALTER LOGIN但我沒有看到任何我需要的東西。我懷疑我只是不知道Google的正確條款。我一般不會做這種事。
任何幫助深表感謝!
USE msdb; GO CREATE USER shims FROM LOGIN shims; GO ALTER ROLE SqlAgentUserRole ADD MEMBER shims; GO
此外,為了將來參考,只要您知道如何在 UI 中而不是在腳本中做某事,這就是
Script
大多數對話框上的選項的用途 - 它會向您顯示 SSMS 將執行的腳本:
如果要將 current\default 數據庫更改為不同的數據庫,請嘗試:
alter login <loginname> with default_database = <dbname>;
現在,為上面創建的登錄創建一個使用者
use <dbname>; create user <username> from login <loginname>;
現在您可以為上述登錄使用者分配角色,如下所示:
use <dbname> exec sp_addrolemember 'db_owner', '<username>';