利用 AD 安全组成员资格的权限 - Amazon Aurora

利用 AD 安全组成员资格的权限

继承服务器级权限

属于给定 AD 安全组成员的 AD 用户将继承向映射的 Windows 组登录名授予的服务器级权限。例如,考虑 accounts-group AD 安全组,该安全组被授予 Babelfish 上 sysadmin 服务器角色的成员资格。可以使用以下命令继承服务器级权限:

1> ALTER SERVER ROLE sysadmin ADD MEMBER [corp\accounts-group];

因此,属于 accounts-group AD 安全组成员的任何 Active Directory 用户都将继承与 sysadmin 角色关联的服务器级权限。这意味着,像 corp\user1 这样的用户(属于 accounts-group 的成员)现在可以在 Babelfish 中执行服务器级操作。

注意

要执行服务器级 DDL,单独 AD 用户的 Windows 登录名必须存在。有关更多信息,请参阅 限制

继承数据库级权限

要授予数据库级权限,必须创建数据库用户并使用 Windows 组登录名进行映射。属于给定 AD 安全组成员的 AD 用户将继承授予该数据库用户的数据库级权限。在以下示例中,可以看到 Windows 组 [corp\accounts-group] 的数据库级权限是如何分配的。

1> CREATE DATABASE db1; 2> GO 1> USE db1; 2> GO Changed database context to 'db1'. 1> CREATE TABLE dbo.t1(a int); 2> GO

为 Windows 组登录名 [corp\accounts-group] 创建数据库用户 [corp\sales-group]。要执行此步骤,请使用作为 sysadmin 成员的登录名通过 TDS 端点进行连接。

1> CREATE USER [corp\accounts-group] FOR LOGIN [corp\accounts-group]; 2> GO

现在,以 AD 用户 user1 的身份进行连接,来检查表 t1 的访问权限。由于我们尚未授予数据库级权限,因此这会导致权限被拒绝错误。

1> SELECT * FROM dbo.t1; 2> GO Msg 33557097, Level 16, State 1, Server db-inst, Line 1 permission denied for table t1

向数据库用户 [corp\accounts-group] 授予对表 t1 的 SELECT 权限。要执行此步骤,请使用作为 sysadmin 成员的登录名通过 TDS 端点进行连接。

1> GRANT SELECT ON dbo.t1 TO [corp\accounts-group]; 2> GO

以 AD 用户 user1 的身份进行连接,来验证访问权限。

1> SELECT * FROM dbo.t1; 2> GO a ----------- (0 rows affected)