Sql-Server-2012

如何為數據庫添加靈活的數據庫角色?

  • November 7, 2016

我知道有兩種類型的角色,一種是預定義的(固定的),另一種是使用者定義的(靈活的)。這是我的案例:我有大量的 AD 組,我試圖將它們映射到一個角色並定義該角色的權限。例如,ADGroup1、2、3 和 4 只能訪問數據庫 1 表 1、2 和 3。為了避免每次為每個 AD 組重新定義權限,我試圖將權限分配給 ROLE 和為該單一角色定義適當的權限。

這是我得到的問題:對於登錄,當我獲得屬性時,我得到了這個漂亮的“使用者映射”頁面,它讓我可以定義使用者可以訪問哪些數據庫。但是我不能用一個角色來做到這一點,我不能選擇一個角色可以訪問的數據庫。 在此處輸入圖像描述 我應該用什麼來實現這一點?你如何結合登錄?(廣告組)?

非常感謝你提前

您需要對每個數據庫進行使用者/角色映射。

因此,您創建一個 AD 組並將其添加為伺服器上的登錄名

在數據庫中,您定義一個角色並為該角色設置權限。然後您需要將 AD Group 登錄作為使用者添加到數據庫中,並將其設置為數據庫角色的成員。每個角色可以有多個成員,因此您可以添加許多組作為角色的成員。

您還可以將使用者映射到伺服器角色,然後將該伺服器角色添加為數據庫中的使用者,並使該成員成為數據庫角色的成員。

Robin Page 對簡單的談話有一個簡單的解釋,並且在許多 StackExchange 答案中都以多個細節進行了詳細解釋

您需要在數據庫中創建角色,授予該角色權限,然後將您的 AD 組分配給該角色。

例如,您可以擁有具有讀/寫/執行的管理員角色和具有隻讀的支持角色。

USE [DB]

GO
--Create your roles in the database

CREATE ROLE MyAdminRole AUTHORIZATION dbo;
GRANT EXECUTE, ALTER, CONTROL ON SCHEMA :: dbo TO [MyAdminRole];

CREATE ROLE MySupportRole AUTHORIZATION dbo;
GRANT SELECT ON SCHEMA :: dbo TO [MySupportRole];

--Now Create our Users in the DB
CREATE USER [MyDomain\MyAdminGroup] FOR LOGIN [MyDomain\MyAdminGroup];
CREATE USER [MyDomain\MySupportGroup] FOR LOGIN [MyDomain\MySupportGroup];

--Now Map our AD Group to our Role
EXEC sp_addrolemember N'MyAdminRole', 'MyDomain\MyAdminGroup';
EXEC sp_addrolemember N'MySupportRole', 'MyDomain\MySupportGroup';

Though I didn't in this example, you could have have multiple AD groups as members of the Role. 

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