Sql-Server

如何使用 T-SQL(不是 SSMS)將登錄名映射到數據庫

  • January 15, 2018

我正在編寫一個程序,要求我在程式碼中分配所有權限和所有內容。我陷入了這部分:

在此處輸入圖像描述

我只想做相當於點擊 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>';

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