在Azure订阅中存储SQL凭据

我希望将我们的生产数据库的副本克隆到我们的QA服务器,作为持续集成计划的一部分。

Azure中似乎没有一种方法来克隆数据库,所以我正在通过blob存储导出和导入数据库。

我有以下命令的麻烦(省略不重要的东西):

$SqlCtx = New-AzureSqlDatabaseServerContext -ServerName $ServerName -UseSubscription $exportRequest = Start-AzureSqlDatabaseExport -SqlConnectionContext $SqlCtx -StorageContainer $Container -DatabaseName $DatabaseName -BlobName $BlobName 

其中返回以下错误。

Start-AzureSqlDatabaseExport:无法绑定参数“SqlConnectionContext”。 无法将types“Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server.ServerDataServiceCertAuth”的值types“Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server .ServerDataServiceSqlAuth”。

我很确定,这是因为我的订阅中没有任何sql凭据,所以sql连接不知道如何连接。 有人知道我能做这个工作吗?

正如您所指出的那样,您需要提供Sql凭据。 一种方法是使用Get-Credential向用户请求凭证,如Start-AzureSqlDatabaseExport的示例中所示 :

 $credential = Get-Credential $SqlCtx = New-AzureSqlDatabaseServerContext -ServerName $ServerName -Credentials $credential $StorageCtx = New-AzureStorageContext -StorageAccountName $StorageName -StorageAccountKey $StorageKey $Container = Get-AzureStorageContainer -Name $ContainerName -Context $StorageCtx $exportRequest = Start-AzureSqlDatabaseExport -SqlConnectionContext $SqlCtx -StorageContainer $Container -DatabaseName $DatabaseName -BlobName $BlobName 

Azure Sql服务器凭证是与Azure凭证分开pipe理的(就像虚拟机login一样),这就是为什么提供Azure订阅凭证是不够的。