如何使用 powershell 将连接安全防火墙规则、SSL、TLS 从 mysql 的一个 azure DB 复制到我的 sql 服务器的另一个 azure DB
How to copy connection security firewall rules,SSL,TLS from one azure DB for mysql to another azure DB for my sql server using powershell
我已经使用下面的 powershell 脚本为 MySQL 单个服务器恢复了 Azure 数据库。
现在,post 恢复数据库,我必须手动从 Azure 数据库的连接安全中为 MySQL 单个服务器复制所有防火墙规则和其他设置。
恢复数据库后,我想使用 powershell 自动将连接安全配置从源(MySQL 单服务器的 Azure 数据库)复制到恢复的(MySQL 单服务器的 Azure 数据库)脚本。我无法弄清楚如何自动执行此操作。
####################### Restore DB Server ####################### Write-Host "Restoring Azure DB for my SQL Server" $restorePointInTime
= (Get-Date).AddMinutes(-5) $DBServerbackupStatus=Get-AzMySqlServer -Name $SourceDBServerName -ResourceGroupName $ResourceGroupName | Restore-AzMySqlServer -Name $TargetDBServerName -ResourceGroupName
$ResourceGroupName -RestorePointInTime $restorePointInTime
-UsePointInTimeRestore start-sleep -s 60 Write-Host -NoNewline "DBServer Restore process is completed,please find the current status
below" $DBServerbackupStatus
您可以创建 JSON 或 Bicep 格式的 Azure 资源管理器 (ARM) 模板来创建防火墙规则,此模板可用于任何 Azure SQL 数据库。
要创建 Microsoft.Sql/servers/firewallRules 资源,请将以下二头肌或 JSON 添加到您的模板中。
{
"type": "Microsoft.Sql/servers/firewallRules",
"apiVersion": "2021-11-01-preview",
"name": "string",
"properties": {
"endIpAddress": "string",
"startIpAddress": "string"
}
}
有一些已经预定义的快速入门模板,您可以查看这些模板here。
我终于能够解决这个问题,并且能够编写我的解决方案并且成功了。
##################### 正在将防火墙规则从源数据库服务器更新到目标数据库服务器############# #####
Write-Host -NoNewline "Updating Firewall rules from Soiurce DB server to Target DB server"
Get-AzMySqlFirewallRule -ResourceGroupName $ResourceGroupName -ServerName $SourceDBServerName | Select-Object Name, StartIPaddress, EndIPaddress | Convertto-Json | Out-File "file.json"
foreach ($entry in (Get-Content file.json -raw | ConvertFrom-Json)) {
New-AzMySqlFirewallRule -Name $entry.Name -ResourceGroupName $ResourceGroupName -ServerName $TargetDBServerName -EndIPAddress $entry.EndIPAddress -StartIPAddress $entry.StartIPAddress
}
我已经使用下面的 powershell 脚本为 MySQL 单个服务器恢复了 Azure 数据库。
现在,post 恢复数据库,我必须手动从 Azure 数据库的连接安全中为 MySQL 单个服务器复制所有防火墙规则和其他设置。
恢复数据库后,我想使用 powershell 自动将连接安全配置从源(MySQL 单服务器的 Azure 数据库)复制到恢复的(MySQL 单服务器的 Azure 数据库)脚本。我无法弄清楚如何自动执行此操作。
####################### Restore DB Server ####################### Write-Host "Restoring Azure DB for my SQL Server" $restorePointInTime = (Get-Date).AddMinutes(-5) $DBServerbackupStatus=Get-AzMySqlServer -Name $SourceDBServerName -ResourceGroupName $ResourceGroupName | Restore-AzMySqlServer -Name $TargetDBServerName -ResourceGroupName $ResourceGroupName -RestorePointInTime $restorePointInTime -UsePointInTimeRestore start-sleep -s 60 Write-Host -NoNewline "DBServer Restore process is completed,please find the current status below" $DBServerbackupStatus
您可以创建 JSON 或 Bicep 格式的 Azure 资源管理器 (ARM) 模板来创建防火墙规则,此模板可用于任何 Azure SQL 数据库。
要创建 Microsoft.Sql/servers/firewallRules 资源,请将以下二头肌或 JSON 添加到您的模板中。
{
"type": "Microsoft.Sql/servers/firewallRules",
"apiVersion": "2021-11-01-preview",
"name": "string",
"properties": {
"endIpAddress": "string",
"startIpAddress": "string"
}
}
有一些已经预定义的快速入门模板,您可以查看这些模板here。
我终于能够解决这个问题,并且能够编写我的解决方案并且成功了。
##################### 正在将防火墙规则从源数据库服务器更新到目标数据库服务器############# #####
Write-Host -NoNewline "Updating Firewall rules from Soiurce DB server to Target DB server"
Get-AzMySqlFirewallRule -ResourceGroupName $ResourceGroupName -ServerName $SourceDBServerName | Select-Object Name, StartIPaddress, EndIPaddress | Convertto-Json | Out-File "file.json"
foreach ($entry in (Get-Content file.json -raw | ConvertFrom-Json)) {
New-AzMySqlFirewallRule -Name $entry.Name -ResourceGroupName $ResourceGroupName -ServerName $TargetDBServerName -EndIPAddress $entry.EndIPAddress -StartIPAddress $entry.StartIPAddress
}