Sql-Server

如何在 SQL Server 2008 中分配整個 Active Directory 組安全訪問權限?

  • March 1, 2016

我想將集成安全性與我的內部應用程序一起使用,這些應用程序都在一個域上。不幸的是,我一直無法讓它正常工作。我想在 SQL Server 中為整個 Exchange(Active Directory)組分配一個角色,以便對某些表進行讀/寫訪問。這樣我就不必在有人被雇用時創建操作員,也不必在有人被解僱時刪除操作員。這可能嗎?我會採取什麼步驟來做到這一點?

  • 將 AD 組設置為登錄。而“登錄”是指伺服器級別的登錄,而不是使用者/登錄的 AD 概念。在 SQL Server 中,這是一個伺服器級別的主體
  • 在其中創建映射使用者。您不應該直接在表上授予使用者權限。而“使用者”是指數據庫使用者而不是使用者的AD概念:在SQL Server中,這是一個“數據庫級主體”
  • 將使用者添加到角色(也是“數據庫級主體”)
  • 授予表上角色的權限(表或過程等是“安全的”)

範例腳本

USE master;
GO
CREATE LOGIN [MYDOMAIN\APPLICATION SUPPORT] FROM WINDOWS;
GO
USE mydb;
GO
CREATE USER [MYDOMAIN\APPLICATION SUPPORT] FROM LOGIN [MYDOMAIN\APPLICATION SUPPORT];
GO
CREATE ROLE rSupport;
GO
EXEC sp_addrolemember 'rSupport', 'MYDOMAIN\APPLICATION SUPPORT';
GO
GRANT SELECT, INSERT,UPDATE, etc ON Mytable TO rSupport;
GO

sp_addrolemember從 SQL Server 2012 開始不推薦使用,ALTER ROLE應改為使用 where。

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