我可以列出Azure数据库如下:
$servers = Get-AzSqlServer
foreach($server in $servers)
{
$databases = Get-AzSqlDatabase -ServerName $server.ServerName -ResourceGroupName
$server.ResourceGroupName
foreach($db in $databases){
Write-Host "Server " $db.ServerName "Database " $db.DatabaseName
$server.SqlAdministratorLogin "SqlAdminPwd "
$server.SqlAdministratorPassword
Invoke-SqlCmd -ServerInstance $db.ServerName -Database $db.DatabaseName -
Username <azuredb_admin_username> -Password
<azuredb_admin_password> -Query
'select * from [dbo].[TableName]'
}
}
$服务器。SqlAdministratorPassword为空,可以理解。但是在下一行中,我调用了一个需要密码的sqlcmd。
如何获取和使用密码?
PowerShell查询应该通过命令行隐式或显式地要求登录凭据。有几种方法可以传递凭证。
-
将凭据存储在凭据管理器中并从中获取信息例子:
$psCred = Get-StoredCredential -Target "ABCD" –AsCredentialObject
下面是使用PowerShell
获取密码的代码片段
$serverName = $db.ServerName
$DB = $db.DatabaseName
$credential = Get-Credential
$userName = $credential.UserName.Replace("","")
$pass = $credential.GetNetworkCredential().password
invoke-sqlcmd -query "select @@Servername" -database $DB -serverinstance $servername -username $username -password $pass -Query 'select * from [dbo].[TableName]'
希望这对你有帮助!