教程:排查 SQL 数据源Microsoft Purview 策略的问题
本教程介绍如何发出 SQL 命令来检查已传达给 SQL 实例的 Microsoft Purview 策略,并在该实例中强制实施这些策略。 你还将了解如何强制将策略下载到 SQL 实例。 这些命令仅用于故障排除,在 Microsoft Purview 策略的正常操作期间不需要这些命令。 这些命令需要在 SQL 实例中拥有更高级别的特权。
有关Microsoft Purview 策略的详细信息,请参阅 后续步骤 部分中列出的概念指南。
先决条件
- Azure 订阅。 如果还没有订阅, 请创建一个免费订阅。
- Microsoft Purview 帐户。 如果没有帐户,请参阅 创建 Microsoft Purview 帐户的快速入门。
- 注册数据源、启用 数据策略强制实施并创建策略。 为此,请使用Microsoft Purview 策略指南之一。 若要遵循本教程中的示例,可以为 Azure SQL Database 创建 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 访问策略的概念指南: