2014-09-05 10 views
20

से SQL सर्वर डेटाबेस से कनेक्ट करें मैंने थोड़ी देर के लिए ऑनलाइन देखा है और कई समान समस्याएं पाई हैं लेकिन किसी कारण से मुझे यह काम नहीं मिल रहा है।PowerShell

मैं बस एक SQL सर्वर डेटाबेस से कनेक्ट करने और क्वेरी परिणामों को फ़ाइल में आउटपुट करने का प्रयास कर रहा हूं - नीचे PowerShell स्क्रिप्ट देखें। कनेक्शन स्ट्रिंग में उपयोगकर्ता आईडी और पासवर्ड को एकीकृत करने के बारे में मुझे अनिश्चितता है।

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

निम्न त्रुटि संदेश प्राप्त होता है:

अपवाद बुला "1" तर्क (रों) के साथ "भरें": "। विंडोज लॉगिन SQL सर्वर के इस संस्करण में समर्थित नहीं हैं"

+0

कौन सा संस्करण ओ एफ एसक्यूएल आप चल रहे हैं? – ne1410s

+0

एसक्यूएल सर्वर प्रबंधन स्टूडियो 2012 – Johnathan

+0

क्या आप SQL Azure इंस्टेंस से कनेक्ट करने का प्रयास कर रहे हैं? – nabrond

उत्तर

15

कनेक्शन स्ट्रिंग में गलत सुरक्षा को एकीकृत करने के लिए बदलें।

+0

आप अपने पास उपयोगकर्ता नाम/पासवर्ड के साथ SQL प्रबंधन स्टूडियो खोलकर इसे देख/सत्यापित कर सकते हैं और देख सकते हैं कि आप वहां से डेटाबेस को कनेक्ट/खोल सकते हैं या नहीं। ध्यान दें! फ़ायरवॉल समस्या भी हो सकती है। – ojk

2

आप कर सकते हैं उपयोग एकीकृत सुरक्षा मान लिया जाये, तो आप उपयोगकर्ता आईडी को हटा सकते हैं और पारित:

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

Integrated Security और User ID \ Password प्रमाणीकरण परस्पर अनन्य हैं। कोड चलाने उपयोगकर्ता के रूप में एसक्यूएल सर्वर से कनेक्ट करने के लिए आपका कनेक्शन स्ट्रिंग से User ID और Password निकालें:

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

विशिष्ट पहचान के साथ कनेक्ट करने के लिए, को दूर 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

जवाब कर रहे हैं विंडो प्रमाणीकरण के लिए नीचे

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