【发布时间】:2013-03-15 05:36:51
【问题描述】:
我遇到无法使用域凭据连接到 SQL Server 的问题。使用 SA 凭据,它可以工作并且查询按预期运行。但是当我使用域凭据时,我得到一个错误。
这是脚本:
$SQLServer = 'server.domain.com'
$SQLDBName = 'DBname'
$username = "DOMAIN\user"
$password = "password"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
#--> With SA, it works, with DOMAIN creds, it does not
#$SqlConnection.ConnectionString = "Server=$SQLServer; Database=$SQLDBName; User ID=sa; Password=SApassword;"
$SqlConnection.ConnectionString = "Server=$SQLServer; Database=$SQLDBName; User ID=$username; Password=$password;"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = 'select count (*) from my.table'
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]
这是我在运行脚本时遇到的错误:
使用“1”参数调用“Fill”的异常:“发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
在 C:\scripts\PowerShell\myscript.ps1:28 char:1
+ $SqlAdapter.Fill($DataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SqlException
我应该指出,我是从不在域中的计算机连接到 SQL Server(因此我不能使用任何类型的身份验证传递)。
关于为什么我无法使用我的域凭据连接的任何想法?我关注了其他帖子,这些帖子提供了有关检查连接、防火墙等的建议。这一切都在工作中,脚本以 sa(本地)用户身份完美运行。只是不在域中..
【问题讨论】:
标签: sql-server powershell windows-security