使用PowerShell配置Azure SQL审计并发送日志到Event Hub的问题
Azure SQL服务器审计配置PowerShell脚本报错及相关疑问
问题场景与报错
尝试通过PowerShell结合Diagnostic Settings配置Azure SQL服务器的审计参数(标记为红色的选项),并将审计日志发送至Event Hub,使用的脚本如下:
New-AzDiagnosticSetting -ResourceId "/subscriptions/subid/resourceGroups/rgname/providers/Microsoft.Sql/servers/servername" -Name "dignnosticsettingname" -EventHubAuthorizationRuleId "/subscriptions/subidofeventhub/resourceGroups/rgofeventhub/providers/Microsoft.EventHub/namespaces/namespaceofeventhub/authorizationrules/sqlserver-sendkey" -EventHubName "sqlserver" -Log @( (New-AzDiagnosticSettingLogSettingsObject -CategoryGroup "SQLSecurityAuditEvents" -Enabled $true), (New-AzDiagnosticSettingLogSettingsObject -CategoryGroup "SQLInsights" -Enabled $true) )
执行脚本时出现如下错误:
New-AzDiagnosticSetting : CategoryGroup: 'SQLSecurityAuditEvents' is not supported, supported ones: '' ,......
操作差异说明
手动在Azure门户操作时,对应的操作是set server blob auditing policy;但执行上述PowerShell脚本时,活动日志中记录的操作类型为create or update resource diagnostic settings并报错。查阅微软文档后仍无法确定正确语法,且发现Diagnostic Settings已更新,但门户界面无对应变化。
审计配置疑问
SQL服务器层面仅提供Audit选项,而数据库层面同时有Diagnostic Settings和Audit选项,是否需要在服务器和数据库两个层面都配置审计?
解决补充与替代方案
- 订阅检查:若能在门户正常配置但PowerShell脚本执行失败,需确认当前使用的订阅是否正确。可通过以下命令查看和切换订阅:
# 查看当前订阅 Get-AzContext # 切换到目标订阅 Set-AzContext -SubscriptionName SubscriptionName - SQL数据库Diagnostic Settings配置脚本:针对数据库层面的配置,可使用以下脚本:
New-AzDiagnosticSetting -ResourceId "/subscriptions/subid/resourceGroups/rgname/providers/Microsoft.Sql/servers/servername/databases/dbname" -Name "diagniosticname" -EventHubAuthorizationRuleId "/subscriptions/subid/resourceGroups/rgname/providers/Microsoft.EventHub/namespaces/namespacename/authorizationrules/sharedaccesskeyname" -EventHubName "sqldatabaseserver" -Log @( (New-AzDiagnosticSettingLogSettingsObject -CategoryGroup "allLogs" -Enabled $true), (New-AzDiagnosticSettingLogSettingsObject -CategoryGroup "audit" -Enabled $true) ) -Metric @( (New-AzDiagnosticSettingMetricSettingsObject -Category "AllMetrics" -Enabled $true) ) - 服务器审计替代方案:使用
Set-AzSqlServerAudit命令启用服务器审计后,数据库审计会自动启用,无需单独配置数据库审计。
内容的提问来源于stack exchange,提问作者Mohsen Sichani
相关产品推荐
相关产品推荐

