J'ai regardé autour de moi en ligne pendant un certain time et j'ai trouvé beaucoup de problèmes similaires, mais pour une raison quelconque, je n'arrive pas à faire fonctionner ça.
J'essaie simplement de me connecter à une database SQL Server et de générer les résultats de la requête dans un file – Voir le script PowerShell ci-dessous. Ce dont je ne suis pas sûr, c'est comment intégrer l'ID user et le mot de passe dans la string de connection.
$SQLServer = "aaaa.database.windows.net" $SQLDBName = "Database" $uid ="john" $pwd = "pwd123" $SqlQuery = "SELECT * from table;" $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionSsortingng = "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"
Le message d'erreur suivant est reçu:
Exception appelant "Remplir" avec "1" argument (s): "Les connections Windows ne sont pas sockets en charge dans cette version de SQL Server."
Toute aide est grandement appréciée.
John
Changez la security embeddede en false dans la string de connection.
Integrated Security
authentification Integrated Security
et User ID
\ Password
sont mutuellement exclusives. Pour vous connecter à SQL Server en tant qu'user exécutant le code, supprimez User ID
et le Password
de Password
de votre string de connection:
$SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;"
Pour vous connecter avec des informations d'identification spécifiques, supprimez Integrated Security
:
$SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
# database Intraction $SQLServer = "YourServerName" #use Server\Instance for named SQL instances! $SQLDBName = "YourDBName" $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionSsortingng = "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
En supposant que vous pouvez utiliser la security embeddede, vous pouvez supprimer l'ID de l'user et passer:
$SqlConnection.ConnectionSsortingng = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;"
la réponse est comme ci-dessous pour l'authentification de la window
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionSsortingng = "Server=$SQLServer;Database=$SQLDBName;Integrated Security=True;"