Posteriormente a investigar con especialistas en la materia, programadores de diversas áreas y profesores hemos dado con la solución al dilema y la compartimos en este post.
Solución:
Integrated Security
y User ID
Password
autenticación son mutuamente excluyentes. Para conectarse a SQL Server como el usuario que ejecuta el código, elimine User ID
y Password
de tu conexión string:
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True;"
Para conectarse con credenciales específicas, elimine Integrated Security
:
$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; User ID = $uid; Password = $pwd;"
Cambie Seguridad integrada a false en la conexión string.
Puede verificar/verificar esto abriendo SQL Management Studio con el nombre de usuario/contraseña que tiene y ver si puede conectarse/abrir la base de datos desde allí. ¡NOTA! Podría ser un problema de firewall también.
# database Intraction
$SQLServer = "YourServerName" #use ServerInstance 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
Recuerda que puedes dar visibilidad a este ensayo si te valió la pena.