教程:排查 SQL 数据源的 Microsoft Purview 策略问题

本教程介绍如何发出 SQL 命令来检查已与 SQL 实例通信的 Microsoft Purview 策略;这些策略将在该实例中强制执行。 你还将了解如何强制将策略下载到 SQL 实例。 这些命令仅用于故障排除,在 Microsoft Purview 策略的正常操作期间不需要它们。 这些命令需要 SQL 实例中更高级别的特权。

有关 Microsoft Purview 策略的详细信息,请参阅后续步骤部分中列出的概念指南。

先决条件

测试策略

创建策略后,策略使用者中引用的 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 访问策略的概念指南: