我一直在尝试并未能在SQL Server的OPENDATASOURCE()中使用域帐户。
我尝试了很多变化,包括:
OPENDATASOURCE ('SQLNCLI', 'Data Source=<server name>; User ID=<domain><user>; Password=<password>' )
我也试过像这样转义反斜杠:
OPENDATASOURCE ('SQLNCLI', 'Data Source=<server name>; User ID=<domain>\<user>; Password=<password>' )
在第一种情况下,我得到以下错误消息:
Msg 18456, Level 14, State 1, Line 1
Login failed for user '<domain><user>'
在第二种情况下,除了在错误消息中看到两个反斜杠外,我得到了相同的结果。
我想做的是可能的吗?此外,密码还包含一个反打号(')字符。这在OPENDATASOURCE中是禁止的吗?
没有OleDb驱动程序支持使用Windows Auth提供用户名/密码。使用Windows认证的唯一方法是模拟用户,在Windows凭据库中注入用户的凭据,或者使用runas /netonly
。
EDIT:要在密码中使用反号或特殊字符,您需要将其封装在双引号
中例如,如果您的密码是" ' password",您可能需要输入:
OPENDATASOURCE('SQLNCLI', 'Data Source=server_name;uid=domainusername;pwd="`password"')