Sql-Server

將管理員授予 SQL Server 中的 Active Directory 帳戶

  • April 5, 2016

我有一個 SQL Server 2012 實例和一個 Active Directory 組,我可以將 Active Directory 使用者添加到其中。我在該組中有我的個人 AD 帳戶 (MyAccount) 和服務帳戶 (ServiceAccount)。

我需要為整個實例授予對此 AD 組的管理員訪問權限。這意味著我不需要對創建的每個新表和數據庫執行授權命令。該組中的任何使用者都將自動能夠創建、刪除、插入、選擇等。

甚至更棘手。我必須能夠使用 Windows 身份驗證通過 MyAccount 登錄(我在 Windows 上登錄,然後登錄到 SQL Server,而無需再次輸入使用者名密碼),並通過輸入使用者名和密碼使用 ServiceAccount 登錄。我不能被迫使用 ServiceAccount 登錄 Windows(或使用該帳戶執行 SSMS/SSDT/等)才能登錄 MSSQL。

配置它的最佳實踐是什麼?

您所要求的某些內容實際上非常簡單。

您的 AD 組的權限

您為 AD 組創建登錄名

CREATE LOGIN [domain\AD Group] FROM WINDOWS

然後授予它您想要的訪問權限。您說您想授予它Admin訪問權限,但除非這是您的 DBA 團隊,否則我不會將 AD 組添加到類似sysadmin. 而是授予他們您真正希望他們擁有的權限。聽起來你想要

  • db_ddladmin - 授予在數據庫中創建/修改對象的權限的角色。
  • db_datareader - 授予權限以SELECT針對數據庫中的任何表/視圖執行的角色
  • db_datawriter - 授予對數據庫中任何表/視圖執行或語句的UPDATE權限的角色。INSERT``DELETE
  • EXECUTE - 授予EXECUTE數據庫中任何儲存過程或函式能力的權限。

要添加它,請在每個使用者數據庫上執行以下命令。

CREATE USER [domain\AD Group] LOGIN [domain\AD Group] 
ALTER ROLE db_ddladmin ADD MEMBER [domain\AD Group]
ALTER ROLE db_datareader ADD MEMBER [domain\AD Group]
ALTER ROLE db_datawriter ADD MEMBER [domain\AD Group]
GRANT EXECUTE TO [domain\AD Group]

如果您希望將這些權限添加到新使用者數據庫中,那麼也要在model數據庫中執行腳本。

使用您的服務帳戶連接

如果您有一個應用程序在您的服務帳戶下執行,那麼當該應用程序使用受信任的身份驗證連接時,它將使用該服務帳戶連接到 SQL。但是,如果您想使用 SSMS 之類的東西連接到 SQL,那麼您有兩種選擇。您可以使用服務帳戶登錄機器,也可以以其他使用者身份執行 SSMS。

要在其他使用者下執行 SSMS,請按住SHIFT 鍵並右鍵點擊 SSMS 的快捷方式並選擇Run as different user

在此處輸入圖像描述

然後,您將獲得 AD 登錄的登錄名/密碼提示。輸入您的服務帳戶名稱和密碼。一旦 SSMS 打開任何受信任的(Windows 身份驗證)連接,將使用您連接下的 AD 登錄名(在這種情況下為您的服務帳戶)進行。

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