You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure PowerShell中跨订阅引用存储账户至SQL数据库漏洞评估设置

解决跨Azure订阅引用存储账户的问题

当存储账户与SQL数据库处于不同Azure订阅时,直接传入-StorageAccountName会导致脚本在当前订阅内查找,无法定位目标存储账户。可以通过以下两种方式解决:

方法1:使用存储账户密钥

先切换到存储账户所在的订阅获取密钥,再切回SQL数据库所在订阅执行脚本:

# 切换到存储账户所在的订阅
Set-AzContext -SubscriptionId "<存储账户订阅ID>"

# 获取目标存储账户的密钥
$storageAccountKey = (Get-AzStorageAccount -ResourceGroupName "<存储账户资源组名>" -Name $StorageAccountName).Keys[0].Value

# 切回SQL数据库所在的订阅
Set-AzContext -SubscriptionId "<SQL数据库订阅ID>"

# 执行原脚本,添加-StorageAccountKey参数
Get-AzSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $SQLServer `
| Where-Object {$_.DatabaseName -ne "master"}  `
| Update-AzSqlDatabaseVulnerabilityAssessmentSetting `
    -StorageAccountName $StorageAccountName `
    -StorageAccountKey $storageAccountKey `
    -ScanResultsContainerName "containerlogs" `
    -RecurringScansInterval Weekly `
    -EmailAdmins $true `
    -NotificationEmail @("xxx@mail.com" , "yyy@mail.com")

方法2:使用存储账户容器的SAS URI

生成目标容器的SAS URI(需包含写入权限),直接在脚本中使用该URI,无需切换订阅:

# 切换到存储账户所在的订阅
Set-AzContext -SubscriptionId "<存储账户订阅ID>"

# 获取存储账户上下文并生成容器的SAS URI(有效期可按需调整)
$storageContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey (Get-AzStorageAccount -ResourceGroupName "<存储账户资源组名>" -Name $StorageAccountName).Keys[0].Value
$sasUri = New-AzStorageContainerSASToken -Name "containerlogs" -Context $storageContext -Permission wl -ExpiryTime (Get-Date).AddYears(1) -FullUri

# 切回SQL数据库所在的订阅
Set-AzContext -SubscriptionId "<SQL数据库订阅ID>"

# 执行脚本,使用-StorageSasUri参数替代存储账户名称和密钥
Get-AzSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $SQLServer `
| Where-Object {$_.DatabaseName -ne "master"}  `
| Update-AzSqlDatabaseVulnerabilityAssessmentSetting `
    -StorageSasUri $sasUri `
    -RecurringScansInterval Weekly `
    -EmailAdmins $true `
    -NotificationEmail @("xxx@mail.com" , "yyy@mail.com")

关键说明

  • 两种方法都需要先获取存储账户的访问凭证(密钥或SAS URI),因为仅通过名称无法跨订阅定位存储资源。
  • 使用SAS URI时,确保授予的权限包含写入(w)和列出(l),以支持漏洞评估扫描结果的写入和访问。
  • 若需要长期使用,建议将SAS URI的有效期设置得足够长,或定期更新。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:05:34