为 SQL 数据库配置精细访问控制
适用于:✅Microsoft Fabric SQL 数据库
Fabric 工作区角色和项权限允许你轻松地为需要数据库的完全管理访问权限或只读访问权限的数据库用户设置授权。
若要配置精细数据库访问,请使用 SQL 访问控制:数据库级别角色、SQL 权限和/或行级安全性 (RLS)。
可以使用 Fabric 门户管理数据库级别角色的成员身份,并为常见的数据访问场景定义自定义(用户定义的)角色。 可使用 Transact-SQL 配置所有 SQL 访问控制。
从 Fabric 门户管理 SQL 数据库级别角色
若要开始管理 Fabric SQL 数据库的数据库级别角色,请执行以下操作:
- 导航到 Fabric 门户中的数据库并将其打开。
- 从主菜单中选择“安全性”,然后选择“管理 SQL 安全性”。
- 此时会打开“管理 SQL 安全性”页面。
若要添加新的自定义(用户定义的)数据库级别角色,该角色允许其成员访问数据库的特定架构中的对象,请执行以下操作:
- 在“管理 SQL 安全性”页面中,选择“新建”。
- 在“新建角色”页面中,输入角色名称。
- 选择一个或多个架构。
- 选择要为每个选定架构的角色成员授予的权限。 “选择”、“插入”、“更新”和“删除”权限适用于架构中的所有表和视图。 “执行”权限适用于架构中的所有存储过程和函数。
- 选择“保存”。
若要更改自定义数据库级别角色的定义,请执行以下操作:
- 在“管理 SQL 安全性”页面中,选择自定义角色,然后选择“编辑”。
- 更改数据库架构的角色名称或角色权限。
注意
“管理 SQL 安全性”页面允许你仅查看和管理五个架构级别的权限。 如果已为架构以外的对象授予
SELECT
、INSERT
、UPDATE
、DELETE
或EXECUTE
角色,或者如果已通过 GRANT Transact-SQL 语句向该角色授予其他权限,则“管理 SQL 安全性”页面不会显示这些权限。 - 选择“保存”。
若要删除自定义数据库级别角色,请执行以下操作:
- 在“管理 SQL 安全性”页面中,选择某个角色,然后选择“删除”。
- 当系统出现提示时,再次选择“删除”。
若要查看角色成员列表以及添加或删除角色成员,请执行以下操作:
- 在“管理 SQL 安全性”页面中,选择内置角色或自定义角色,然后选择“管理访问”。
- 若要添加角色成员,请执行以下操作:
- 在“添加人员、组或应用”字段中,键入名称并从搜索结果中选择某个用户、组或应用。 可以重复此操作以添加其他人、组或应用。
- 选择 添加 。
- 如果正在添加的部分角色成员对 Fabric 中的数据库没有“读取项”权限,则会显示“共享数据库”按钮。 选择该按钮以打开“授予人员访问权限”对话框,然后选择“授权”以共享数据库。 如果授予对数据库的共享权限,将向尚未拥有“读取项”权限的角色成员授予该权限。 有关共享 SQL 数据库的详细信息,请参阅共享 SQL 数据库并管理权限。
重要
要连接到数据库,用户或应用程序必须对 Fabric 中的数据库具有“读取项”权限,该权限独立于其在 SQL 数据库级别角色中的成员身份或数据库内的 SQL 权限。
- 若要删除角色成员,请执行以下权限:
- 选择要删除的角色成员。
- 选择“删除” 。
- 若要添加角色成员,请执行以下操作:
- 选择“保存”以保存对角色成员列表所做的更改。
注意
添加数据库中没有用户对象的新角色成员时,Fabric 门户会以用户身份自动为该角色成员创建用户对象(使用 CREATE USER (Transact-SQL))。 从角色中删除角色成员时,Fabric 门户不会从数据库中删除用户对象。
使用 Transact-SQL 配置 SQL 控件
若要使用 Transact SQL 为用户或应用程序配置访问权限,请执行以下操作:
- 与用户/应用程序共享数据库,或与用户/应用程序所属的 Microsoft Entra 组共享数据库。 共享数据库可确保用户/应用程序对 Fabric 中的数据库具有“读取项”权限,这是连接到数据库所必需的。 有关详细信息,请参阅共享 SQL 数据库和管理权限。
- 使用 CREATE USER (Transact-SQL) 和
FROM EXTERNAL PROVIDER
子句为数据库中的用户、应用程序或其组创建用户对象。 有关详细信息,请参阅为 Microsoft Entra 标识创建数据库用户。 - 配置所需的访问控制:
- 定义自定义(用户定义的)数据库级别角色。 若要管理自定义角色的定义,请使用 CREATE ROLE、ALTER ROLE 和 DROP ROLE。
- 使用 ALTER ROLE 语句的
ADD MEMBER
和DROP MEMBER
选项将用户对象添加到自定义角色或内置(固定)角色。 - 使用 GRANT、REVOKE 和 DENY 语句为用户对象配置精细 SQL 权限。
- 配置行级安全性 (RLS),以向用户对象授予/拒绝对表中特定行的访问权限。