关于远程连接数据库sa登录失败的问题(Distributed Qeury)

SELECT * FROM OPENDATASOURCE('SQLOLEDB','DataSource=192.168.1.201 ;Initial Catalog=DBName ;user id=sa ;password=sa ').DBName .dbo.TableName

上面的语句执行会出现以下错误:

Msg 18456, Level 14, State 1, Line 1 用户 'sa' 登录失败。 Msg 4060, Level 11, State 1, Line 1 无法打开登录所请求的数据库 "bbage_GameInisde"。登录失败。

因为OPENDATASOURCE后面已经跟了数据库的名字(DBName ),所以连接字符串中不能指定Initial Catalog。

正确的语句如下:

SELECT   * FROM      OPENDATASOURCE(          'SQLOLEDB',          'Data Source=192.168.1.201 ;User ID=sa ;Password=sa '          ).DBName .dbo.TableName

注意:上面灰色的字均为个人需要配置的东西。

执行该语句,可能会遇到以下问题:

SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

只要执行下列语句:

EXEC sp_configure ''Ad Hoc Distributed Queries'' 1

RECONFIGURE  

如果你没有设置过服务器配置,可能会出现以下错误:

配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。

这时,你就需要打开高级配置:

EXEC sp_configure 'show advanced option' 1

RECONFIGURE  

总的操作就按照上面逆序执行即可:

EXEC sp_configure 'show advanced option' 1

RECONFIGURE

EXEC sp_configure 'Ad Hoc Distributed Queries' 1

RECONFIGURE

注意:上面的RECONFIGURE是用以动态更新选项的操作,如果不执行,则sp_configure的执行结果不会被保持。

另外,对于SQLExpression 2005,则需要执行:

EXEC sp_configure 'user instance enabled' 1

RECONFIGURE

 

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

jedliu

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值