【问题标题】:Copy Azure SQL Users using Pipeline使用管道复制 Azure SQL 用户
【发布时间】:2021-03-26 12:27:05
【问题描述】:
我有两个 SQL 数据库,开发和测试,它们托管在 Microsoft Azure 上。有一个用于将数据库从开发环境复制到测试环境的发布管道。我使用az db copy 命令进行复制操作。用户在测试和开发中是不同的,所以我需要使用天蓝色管道任务从测试环境中的另一个数据库复制所有用户。
将用户从 db 2 复制到 db 1 的正确解决方案是什么?
【问题讨论】:
标签:
azure
azure-devops
azure-sql-database
devops
【解决方案1】:
Azure 管道中没有将用户从 db 2 复制到 db 1 的默认任务。您可以尝试使用 Azure PowerShell 任务来查询每个数据库并根据需要在它们之间移动数据。这里有一个example 说明如何完成这项工作。
Get-AzureSqlDatabaseServer
$ipAddress = (Invoke-WebRequest 'http://myexternalip.com/raw').Content -replace "`n"
New-AzureSqlDatabaseServerFirewallRule -ServerName $serverName -RuleName 'ClientRule' -StartIpAddress $ipAddress -EndIpAddress $ipAddress
$params = @{
'Database' = 'myazuredatabase'
'ServerInstance' = 'yoursqinstance.database.windows.net'
'Username' = 'adam'
'Password' = 'mysecretpassword'
'OutputSqlErrors' = $true
'Query' = 'SELECT * FROM Users'
}
Invoke-Sqlcmd @params
【解决方案2】:
数据库复制完成后,您可以在管道中运行添加用户名 SQL 脚本作为任务。