教程:排查 SQL 数据源的 Microsoft Purview 策略问题
本教程介绍如何发出 SQL 命令来检查已与 SQL 实例通信的 Microsoft Purview 策略;这些策略将在该实例中强制执行。 你还将了解如何强制将策略下载到 SQL 实例。 这些命令仅用于故障排除,在 Microsoft Purview 策略的正常操作期间不需要它们。 这些命令需要 SQL 实例中更高级别的特权。
有关 Microsoft Purview 策略的详细信息,请参阅后续步骤部分中列出的概念指南。
先决条件
- Azure 订阅。 如果你还没有订阅,请创建一个试用版订阅。
- Microsoft Purview 帐户。 如果你没有帐户,请参阅创建 Microsoft Purview 帐户的快速入门。
- 注册数据源,启用数据策略强制实施,并创建一个策略。 为此,请使用 Microsoft Purview 策略指南之一。 按照本教程中的示例,可以为 Azure SQL 数据库创建 DevOps 策略。
测试策略
创建策略后,策略使用者中引用的 Microsoft Entra 主体应能够连接到发布策略的服务器中的任何数据库。
强制执行策略下载
通过运行以下命令,可以强制将最新发布的策略立即下载到当前 SQL 数据库。 运行该命令所需的最低权限是 ##MS_ServerStateManager##-server 角色的成员身份。
-- Force immediate download of latest published policies
exec sp_external_policy_refresh reload
从 SQL 分析下载的策略状态
以下 DMV 可用于分析已下载了哪些策略,并且这些策略当前已分配给 Microsoft Entra 主体。 运行它们所需的最低权限是 VIEW DATABASE SECURITY STATE - 或分配的操作组“SQL 安全审核员”。
-- Lists generally supported actions
SELECT * FROM sys.dm_server_external_policy_actions
-- Lists the roles that are part of a policy published to this server
SELECT * FROM sys.dm_server_external_policy_roles
-- Lists the links between the roles and actions, could be used to join the two
SELECT * FROM sys.dm_server_external_policy_role_actions
-- Lists all Azure AD principals that were given connect permissions
SELECT * FROM sys.dm_server_external_policy_principals
-- Lists Azure AD principals assigned to a given role on a given resource scope
SELECT * FROM sys.dm_server_external_policy_role_members
-- Lists Azure AD principals, joined with roles, joined with their data actions
SELECT * FROM sys.dm_server_external_policy_principal_assigned_actions
后续步骤
Microsoft Purview 访问策略的概念指南: