管理数据库安全角色

通过基于角色的访问控制模型授予主体对资源的访问权限,其中分配的安全角色决定了主体的资源访问权限。

本文介绍如何使用管理命令在数据库级别查看现有安全角色以及添加和删除安全角色

注意

若要删除数据库,至少需要对群集具有参与者 Azure 资源管理器 (ARM) 权限。 若要分配 ARM 权限,请参阅使用 Azure 门户分配 Azure 角色

权限

你必须至少具有数据库管理员权限才能运行这些命令。

数据库级安全角色

下表显示了可以在数据库级别分配的安全角色,并描述了为每个角色授予的权限。

角色 权限
admins 查看和修改数据库与数据库实体。
users 查看数据库和创建新的数据库实体。
viewers 查看未打开 RestrictedViewAccess 的数据库中的表。
unrestrictedviewers 查看已打开 RestrictedViewAccess 的数据库中的表。 主体还必须拥有 adminsviewersusers 权限。
ingestors 在无法访问查询的情况下将数据引入数据库。
monitors 查看架构、操作和权限等数据库元数据。

注意

无法仅为数据库中的某些表分配 viewer 角色。 有关如何向主体视图授予对表子集的访问权限的不同方法,请参阅管理表视图访问权限

显示现有安全角色

在添加或删除主体之前,可以使用 .show 命令查看包含已在数据库上设置的所有主体和角色的表。

语法

要显示所有角色,请:

.showdatabaseDatabaseNameprincipals

要显示你的角色,请:

.showdatabaseDatabaseNameprincipalroles

详细了解语法约定

参数

客户 类型​​ 必需 说明
DatabaseName string 要列出其主体的数据库的名称。

示例

以下命令列出有权访问 Samples 数据库的所有安全主体。

.show database Samples principals

示例输出

角色 PrincipalType PrincipalDisplayName PrincipalObjectId PrincipalFQN
数据库示例管理员 Microsoft Entra 用户 Abbi Atkins cd709aed-a26c-e3953dec735e aaduser=abbiatkins@fabrikam.com

添加和删除安全角色

本部分提供用于添加和删除主体的语法、参数及其示例。

语法

ActiondatabaseDatabaseNameRole(Principal [,Principal...] ) [skip-results] [ Description ]

详细了解语法约定

参数

客户 类型​​ 必需 说明
操作 string 命令 .add.drop.set
.add 添加指定的主体,.drop 删除指定的主体,.set 添加指定的主体并删除所有以前的主体。
DatabaseName string 要为其添加主体的数据库的名称。
角色 string 要分配给主体的角色。 对于数据库,这可以是 adminsusersviewersunrestrictedviewersingestorsmonitors
主体 string 一个或多个主体。 有关如何指定这些主体的指南,请参阅引用安全主体
skip-results string 如果提供,该命令将不会返回更新的数据库主体列表。
描述 string 用于描述使用 .show 命令时显示的更改的文本。

注意

结合 none(而不是主体列表)使用 .set 命令将删除指定的角色的所有主体。

示例

以下示例演示如何在同一命令中添加安全角色删除安全角色以及添加和删除安全角色

使用 .add 添加安全角色

以下示例将主体添加到 Samples 数据库上的 users 角色。

.add database Samples users ('aaduser=imikeoein@fabrikam.com')

以下示例将应用程序添加到 Samples 数据库上的 viewers 角色。

.add database Samples viewers ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;fabrikam.com')

使用 .drop 删除安全角色

以下示例从 Samples 数据库上的 admins 角色中删除组中的所有主体。

.drop database Samples admins ('aadGroup=SomeGroupEmail@fabrikam.com')

使用 .set 添加新安全角色和删除旧安全角色

以下示例删除现有的 viewers,并添加提供的主体作为 Samples 数据库上的 viewers

.set database Samples viewers ('aaduser=imikeoein@fabrikam.com', 'aaduser=abbiatkins@fabrikam.com')

使用 .set 删除所有安全角色

以下命令删除 Samples 数据库上的所有现有 viewers

.set database Samples viewers none