管理数据库安全角色

适用于:✅Azure 数据资源管理器

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

在本文中,将学习如何使用管理命令查看现有安全角色,以及在数据库级别添加和删除与安全角色的主体关联

权限

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

注意

若要删除数据库,至少需要参与者 Azure Resource Manager (ARM) 权限。 若要分配 ARM 权限,请参阅使用 Azure 门户分配 Azure 角色

数据库级安全角色

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

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

注意

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

显示现有安全角色

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

语法

要显示所有角色,请执行以下操作:

.show database DatabaseName principals

要显示角色,请执行以下操作:

.show database DatabaseName principal roles

详细了解语法约定

参数

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

示例

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

.show database Samples principals

示例输出

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

在安全角色中添加和删除主体关联

本部分提供用于在安全角色中添加和删除主体的语法、参数和示例。

语法

Action database DatabaseName Role ( Principal [, Principal...] ) [skip-results] [ Description ]

详细了解语法约定

参数

客户 类型​​ 必需 说明
操作 string ✔️ 命令 .add.drop.set
.add 添加指定的主体,.drop 删除指定的主体,.set 添加指定的主体并删除所有以前的主体。
DatabaseName string ✔️ 要为其添加主体的数据库的名称。
角色 string ✔️ 要分配给主体的角色。 对于数据库,角色可以是 adminsusersviewersunrestrictedviewersingestorsmonitors
主体 string ✔️ 一个或多个主体或托管标识。 若要引用托管标识,请使用“应用程序”格式,并使用托管标识对象 ID 或托管标识客户端(应用程序)ID。 有关如何指定这些主体的指导,请参阅引用 Microsoft Entra 主体和组
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