51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> sqlserver >> 文章正文

Microsoft OLE DB Provider for SQL Server (0x80004005)

更新时间:2012-1-4:  来源:51代码网

Microsoft OLE DB Provider for SQL Server (0x80004005)
无法打开登录 'xici' 中请求的数据库。登录失败。
/h/conn.asp, 第 12 行

这个错误发生在asp程序中打开数据库连接时。
conn.open "PROVIDER=SQLOLEDB;Data Source=(local);UID=sa;PWD=password;database=xici"

居然连sa都不能访问它,很奇怪。同时,如果我换成其他的数据库,如abc,却又正常了。
我的机器上有多个数据库,有几个是这种现象不能访问,其他的又都能正常访问。
数据库是 2008的。

但是用sql server studio工具使用 sa账号,访问这个数据库一切都正常。
求解!!

sa 并非一定是 systemadministrator,如果sa曾被删除过,然后再建一个名为sa的用户时,它的权限并非系统管理员.
不过你的这个情况到是有点奇怪,在SSMS上登录可以,通过ASP登录却不行,这个.....恐怕还是你程序写得有问题,哪儿多了或少了一个不该多或不该少的字符什么的...

原因可能是
你的数据库有别名,使用 servername\别名来制定data source
你 SQL SERVER 2008的实例不是默认的吧

.有可能sa被重建过,查一下sa是否有sysadmin角色,

2.用以下连接串语句试试.
JScript code conn.Open "driver={SQL Server};server=[SQL Server名];uid=sa;pwd=password;database=xici"

如果用
conn.open "PROVIDER=SQLOLEDB;Data Source=(local);UID=sa;PWD=password;database=xici"
就提示上面写的那个错误。

但如果用
conn.open "PROVIDER=SQLOLEDB;Data Source=(local);UID=sa;PWD=password;database=abc"
却又能正常访问。

这里的xici和abc是机器上一个实例下两个不同的数据库。
所以很奇怪。
而且,我把xici数据库删掉了,然后重新建了,还是有问题。
确定是补丁问题吗?
补丁也是是瞎打的

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |