管理表安全角色
适用于:✅Azure 数据资源管理器
通过基于角色的访问控制模型授予主体对资源的访问权限,其中分配的安全角色决定了主体的资源访问权限。
本文介绍如何使用管理命令在表级别查看现有安全角色以及添加和删除安全角色。
注意
主体必须拥有数据库级别的访问权限才能为其分配特定于表的安全角色。
权限
你必须至少具有表管理员权限才能运行这些命令。
表级安全性
下表显示了可以在表级别分配的安全角色,并描述了为每个角色授予的权限。
角色 | 权限 |
---|---|
admins |
查看、修改和删除表及表实体。 |
ingestors |
将数据引入表中,但没有查询访问权限。 |
注意
若要了解如何向主体视图授予对数据库中表子集的访问权限,请参阅管理表视图访问权限。
显示现有安全角色
在添加或删除主体之前,可以使用 .show
命令查看包含已在表上设置的所有主体和角色的表。
语法
要显示所有角色,请执行以下操作:
.show
table
TableName principals
要显示角色,请执行以下操作:
.show
table
TableName principal
roles
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
TableName | string |
✔️ | 要列出其主体的表的名称。 |
示例
以下命令列出有权访问 StormEvents
表的所有安全主体。
.show table StormEvents principals
示例输出
角色 | PrincipalType | PrincipalDisplayName | PrincipalObjectId | PrincipalFQN |
---|---|---|---|---|
表 StormEvents 管理员 | Microsoft Entra 用户 | Abbi Atkins | cd709aed-a26c-e3953dec735e | aaduser=abbiatkins@fabrikam.com |
添加和删除安全角色
本部分提供用于添加和删除主体的语法、参数及其示例。
语法
Action table
TableName Role (
Principal [,
Principal...] )
[skip-results
] [ Description ]
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
操作 | string |
✔️ | 命令 .add 、.drop 或 .set 。.add 添加指定的主体,.drop 删除指定的主体,.set 添加指定的主体并删除所有以前的主体。 |
TableName | string |
✔️ | 要为其添加主体的表的名称。 |
角色 | string |
✔️ | 要分配给主体的角色。 对于表,这可以是 admins 或 ingestors 。 |
主体 | string |
✔️ | 一个或多个主体。 有关如何指定这些主体的指南,请参阅引用安全主体。 |
skip-results |
string |
如果提供,该命令将不会返回更新的表主体列表。 | |
描述 | string |
用于描述使用 .show 命令时显示的更改的文本。 |
注意
结合 none
(而不是主体列表)使用 .set
命令将删除指定的角色的所有主体。
示例
以下示例演示如何在同一命令中添加安全角色、删除安全角色以及添加和删除安全角色。
使用 .add 添加安全角色
以下示例将主体添加到 StormEvents
表上的 admins
角色。
.add table StormEvents admins ('aaduser=imikeoein@fabrikam.com')
以下示例将应用程序添加到 StormEvents
表上的 ingestors
角色。
.add table StormEvents ingestors ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;fabrikam.com')
使用 .drop 删除安全角色
以下示例从 StormEvents
表上的 admins
角色中删除组中的所有主体。
.drop table StormEvents admins ('aadGroup=SomeGroupEmail@fabrikam.com')
使用 .set 添加新安全角色和删除旧安全角色
以下示例删除现有的 ingestors
,并添加提供的主体作为 StormEvents
表上的 ingestors
。
.set table StormEvents ingestors ('aaduser=imikeoein@fabrikam.com', 'aaduser=abbiatkins@fabrikam.com')
使用 .set 删除所有安全角色
以下命令删除 StormEvents
表上的所有现有 ingestors
。
.set table StormEvents ingestors none