2014-09-05 37 views
20

SQL Server veritabanı için ben bir süredir çevrimiçi etrafına baktı ve çok sayıda benzer sorunlar buldum ama nedense bu çalışma almak gibi olamaz var.Bağlan PowerShell

Ben sadece bir SQL Server veritabanı ve çıkış bir dosyaya sorgu sonuçları bağlanmaya çalışıyorum - Aşağıdaki PowerShell komut dosyasını bakın. Belirsiz olduğum şey, Kullanıcı Kimliği ve Şifrenin bağlantı dizesine nasıl entegre edileceğidir.

$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" 

aşağıdaki hata iletisi alındığında:

İstisna "1" argümanı (ler) ile "Fill" çağrısında: "Windows oturumu açma SQL Server bu sürümünde desteklenmez" Bağlantı dizesinde false

+0

hangi sürümü o için aşağıda f SQL çalışıyor musunuz? – ne1410s

+0

sql sunucu yönetim stüdyo 2012 – Johnathan

+0

bir SQL Azure örneğine bağlanmaya çalışıyorsunuz? – nabrond

cevap

15

Değişim entegre güvenlik.

+0

sen sahip kullanıcı adı/şifre ile SQL yönetim stüdyosu açarak Bunu doğrulamak ve/bağlamak oradan veritabanını açabilir olmadığını görmek/kontrol edebilirsiniz. NOT! Güvenlik duvarı sorunu da olabilir. – ojk

2

size can kullanımı entegre güvenlik varsayarsak, kullanıcı kimliği kaldırıp geçirebilirsiniz:

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

Integrated Security ve User IDPassword kimlik birbirini dışlayan \. kod çalıştıran kullanıcı olarak SQL Server bağlanmak için bağlantı dizesinden User ID ve Password kaldırın:

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

belirli kimlik bilgileriyle bağlamak için, Integrated Security kaldırın:

$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

cevaptır Pencere kimlik doğrulaması

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