Выполнить SQL-запрос к базе данных SQL Azure с помощью PowerShell - PullRequest
0 голосов
/ 18 октября 2019

Моя задача - получить список пользователей из наших баз данных SQL Azure. У нас есть сотни баз данных Azure SQL, и я хочу использовать PowerShell для быстрого выполнения этой задачи.

Я использую строку подключения (Active Directory Integrated). Я полагаю, что могу войти в базу данных SQL, используя строку подключения с PowerShell.

Однако при выполнении SQL появляется ошибка. Ниже приведен код и исключение. Не могли бы вы мне помочь?

Код:

try {
    $new = 'Server=tcp:dummy.database.windows.net,1433;Authentication="Active Directory Integrated";Initial Catalog=xtoiteuitbdbsqldb01;Persist Security Info=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;'
    $sql = "SELECT * FROM sys.database_principals"
  $temp_result_object = invoke-sqlcmd -ConnectionString $new -Query $sql
} catch {
  "error when running sql $sql"
  write-host "Exception type: $($_.Exception.GetType().FullName)" -ForegroundColor Red
    write-host "Exception message: $($_.Exception.Message)" -ForegroundColor Red
    write-host "Error: " $_.Exception -ForegroundColor Red   
}

Исключение:

Тип исключения: ManagedBatchParser.ParserException
Сообщение об исключении:
Ошибка: ManagedBatchParser.ParserException

в ManagedBatchParser.Parser.Parse ()
в Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor.ExecuteTSql (String sqlCommand)

1 Ответ

0 голосов
/ 22 октября 2019

Попробуйте что-то вроде ниже и посмотрите, поможет ли это:

$Svr = "SVR"
$SvrPort = 10003
$Username = "ABC\sql"
$Password = "ABC#@!"

$Password = $Password | ConvertTo-SecureString -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$Password
$Inst = $Svr + "," + $SvrPort

Get-PSSession

New-PSSession -ComputerName $Svr -Credential $Cred

Invoke-Sqlcmd -ServerInstance $Inst -Database "master" -Query "SELECT @@SERVERNAME AS SERVER_NAME"

Get-PSSession

Get-PSSession | Remove-PSSession

Invoke-Sqlcmd -ServerInstance $Inst -Database "master" -Query "SELECT @@SERVERNAME AS SERVER_NAME"

Get-PSSession

Также обратитесь к приведенному ниже сообщению для получения дополнительной справки:

Ошибка подключения к паролю Active Directory Ошибка SQL Azure из Azure Automation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...