2014-09-05 31 views
20

Rozglądałem się już od jakiegoś czasu i znalazłem wiele podobnych problemów, ale z jakiegoś powodu nie wydaje mi się, żeby to działało.Połączyć się z bazą danych programu SQL Server od PowerShell

Po prostu próbuję połączyć się z bazą danych serwera SQL i wyprowadzić wyniki zapytania do pliku - Zobacz poniższy skrypt PowerShell. Nie jestem pewien, w jaki sposób zintegrować identyfikator użytkownika i hasło w łańcuchu połączenia. jest odbierany

$SQLServer = "aaaa.database.windows.net" 
$SQLDBName = "Database" 
$uid ="john" 
$pwd = "pwd123" 
$SqlQuery = "SELECT * from table;" 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True; User ID = $uid; Password = $pwd;" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = $SqlQuery 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 

$DataSet.Tables[0] | out-file "C:\Scripts\xxxx.csv" 

następujący komunikat o błędzie:

Wyjątek wywołujący "Fill" z "1" argumentu (ów): "logowania systemu Windows nie są obsługiwane w tej wersji programu SQL Server"

+0

Która wersja o f Czy działasz SQL? – ne1410s

+0

Studio zarządzania serwerami sql 2012 – Johnathan

+0

Czy próbujesz połączyć się z instancją SQL Azure? – nabrond

Odpowiedz

15

Zmień Zintegrowane zabezpieczenie na false w ciągu połączenia.

+0

Możesz to sprawdzić/zweryfikować, otwierając studio zarządzania SQL z nazwą użytkownika/hasłem i sprawdź, czy możesz tam połączyć/otworzyć bazę danych. UWAGA! Może to być również problem z firewallem. – ojk

2

Zakładając może użytkowania zintegrowanego bezpieczeństwa można usunąć identyfikator użytkownika i hasło:

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;" 
20

Integrated Security i User ID \ uwierzytelniania Password wykluczają się wzajemnie. Aby połączyć się z SQL Server jako użytkownik uruchomiony kod, usunąć User ID i Password z ciągu połączenia:

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;" 

Aby połączyć się z określonych poświadczeń, usunąć Integrated Security:

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;" 
4
# database Intraction 

$SQLServer = "YourServerName" #use Server\Instance for named SQL instances! 
$SQLDBName = "YourDBName" 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; 
User ID= YourUserID; Password= YourPassword" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = 'StoredProcName' 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 
$SqlConnection.Close() 

#End :database Intraction 
clear 
0

Odpowiedzią są jak poniżej w przypadku uwierzytelniania w oknie

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server=$SQLServer;Database=$SQLDBName;Integrated Security=True;" 
Powiązane problemy