我正在尝试使用powershell开始导入azure sql数据库。因为我希望在部署期间运行它我不能使用Get-Credential,因为我将获得一个登录提示。
Import-AzurePublishSettingsFile $publishSettingsFile
Set-AzureSubscription -SubscriptionName $subscriptionName -Certificate $certificate
Select-AzureSubscription -SubscriptionName $subscriptionName
$databaseContext = New-AzureSqlDatabaseServerContext -ServerName $serverName -UseSubscription
$storageContext = New-AzureStorageContext -StorageAccountName testdatabasebackups -StorageAccountKey $storageKey
Start-AzureSqlDatabaseImport -SqlConnectionContext $databaseContext -StorageContainer $storageContainer -DatabaseName $databaseName -BlobName $restoreFrom
当我到达Start-AzureSqlDatabaseImport
时,我收到以下错误:
Start-AzureSqlDatabaseImport:无法绑定参数'SqlConnectionContext'。无法转换“Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Serve”类型的“Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server.ServerDataServiceCertAuth”值 r.ServerDataServiceCertAuth“键入”Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server.ISqlServerConnectionInformation“。
是否可以这样做,或者在使用Get-Credential
时是否需要使用Start-AzureSqlDatabaseImport
?
答案 0 :(得分:4)
要使用PowerShell Start-AzureSQLDatabaseImport
,您需要使用Get-Credential通过SQL Server身份验证创建新的服务器上下文。
这是必需的原因是Import cmdlet需要SQL Server身份验证才能访问服务器。
要将SQL Server身份验证建立为服务器连接上下文的一部分,您需要提供PowerShell凭据。
安装最新版本的Azure PowerShell here,然后您可以尝试以下操作:
Add-AzureAccount
Set-AzureSubscription -SubscriptionName 'SubscriptionName'
$Password = ConvertTo-SecureString 'MyPassowrd' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList 'LoginName', $Password
$SqlCtx = New-AzureSqlDatabaseServerContext -ServerName 'ServerName' -Credential $cred
$StorageCtx = New-AzureStorageContext -StorageAccountName 'StorageAccountName' -StorageAccountKey 'YourStorageKey'
$Container = Get-AzureStorageContainer -Name 'ContainerName'
$ImportRequest = Start-AzureSqlDatabaseImport -SqlConnectionContext $SqlCtx -StorageContainer $Container -BlobName 'BlobFileName'
希望这有帮助!