如何通过Powershell检索Azure数据库详细信息时检索用户名和密码?



我可以列出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查询应该通过命令行隐式或显式地要求登录凭据。有几种方法可以传递凭证。

  1. 将凭据存储在凭据管理器中并从中获取信息例子:

    $psCred = Get-StoredCredential -Target "ABCD" –AsCredentialObject
    
  2. 下面是使用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]'   
    

希望这对你有帮助!

最新更新