如何通过Python SDK启用Azure SQL Server的Log Analytics工作区审计?
解决Azure SQL通过Python SDK启用Log Analytics审计的问题
你用的server_blob_auditing_policies仅针对Blob存储审计,Log Analytics的配置需要通过extended_server_blob_auditing_policies操作,且必须正确配置log_analytics_destination_details参数。以下是可行的实现步骤:
代码示例
from azure.mgmt.sql import SqlManagementClient from azure.mgmt.sql.models import ( ExtendedServerBlobAuditingPolicy, LogAnalyticsDestinationDetails ) # 初始化SqlManagementClient(假设已完成身份验证,比如用DefaultAzureCredential) sql_client = SqlManagementClient(credential, subscription_id) # 构造Log Analytics目标配置 la_details = LogAnalyticsDestinationDetails( workspace_resource_id="/subscriptions/你的订阅ID/resourceGroups/资源组名/providers/Microsoft.OperationalInsights/workspaces/LA工作区名" ) # 创建/更新扩展审计策略 policy = ExtendedServerBlobAuditingPolicy( state="Enabled", log_analytics_destination_details=la_details, # 若同时需要Blob存储审计,可补充配置storage_account_access_key等参数,无需则留空 ) result = sql_client.extended_server_blob_auditing_policies.create_or_update( resource_group_name="你的资源组名", server_name="SQL服务器名", parameters=policy ) # 验证配置是否生效 get_result = sql_client.extended_server_blob_auditing_policies.get( resource_group_name="你的资源组名", server_name="SQL服务器名" ) print(get_result.log_analytics_destination_details.workspace_resource_id)
关键说明
server_blob_auditing_policies仅维护Blob存储相关的审计配置,GUI启用Log Analytics审计后,用该方法查询看不到对应信息是正常的,必须通过extended_server_blob_auditing_policies查询完整配置。- 确保操作账号拥有
Microsoft.Sql/servers/extendedAuditingPolicies/write权限。 - azure-mgmt-sql 3.0.1版本已支持
log_analytics_destination_details参数,无需升级版本。
内容的提问来源于stack exchange,提问作者ChrisB
相关产品推荐
相关产品推荐

