將管理員授予 SQL Server 中的 Active Directory 帳戶
我有一個 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 登錄名(在這種情況下為您的服務帳戶)進行。