SQLServer2000数据库附加后的处理步骤说明

SQL Server 2000数据库文件附加操作后故障排除

故障现象:

Sql server服务器安装好之后,安全性的[登录]账户列表中肯定是sa以外,什么也没有。

(这个界面里面应该只有sa的情况下)

如果:

在某数据库ekyydb中有指定的用户(ekyydb存在于sysuser表中),如果先把数据库文件附件进来,再在安全性的[登录]账户列表中增加ekyydb账户,那么可能无法按照该用户登录后来访问数据库。

因为这个登录账户和数据库用户名没有对应起来。

因此在附加时,一定要选择:sa

这样,才会出现以下配对情况:

如果这里的“登录名”为空,那肯定访问不了

客户端软件访问数据库就会出现找不到表的情况:

最后解决的办法是:

删除该数据库,然后重新附加,以sa归属。

这个时候,ekyydb和登录名之间还是没有配对,空白:

然后执行下面语句:

---------------------更改数据库ekyydb 的下面属性----------------------

use master

sp_configure "allow updates","1"

RECONFIGURE WITH OVERRIDE

--查看登录名ekyydb的sid属性为0xDFBDC39AF94A5A48A8E3314B116677BC use master

select * from syslogins

--查看用户表中用户名ekyydb的属性

use ekyydb

select * from sysusers

--下面是更新该属性,即可正常访问辣

Update sysusers set sid = 0xDFBDC39AF94A5A48A8E3314B116677BC where name = 'ekyydb'

彻底解决问题!!!!

可以看到里面已经对应起来了:

第三个数据库的问题现象:

科室管理系统的数据库,先附加数据库文件(附加时归属于ekyy_OFFICE),后增加登录账户的情况,无法访问到数据库表。

解决办法:删除该数据库(但不删除登录名),然后重新附加该数据库(此时选择归属于sa)

,此刻,登录用户名已经存在,没有删除的。

再经过下面的处理,成功解决问题!

---------------------更改数据库ekyy_office 的下面属性----------------------

use master

go

sp_configure "allow updates","1"

RECONFIGURE WITH OVERRIDE

--查看登录名ekyydb的sid属性为0xCC1DF25210133249AD7839836BFA9385

use master

select * from syslogins

--查看用户表中用户名ekyydb的属性

use ekyy_office

select * from sysusers

--下面是更新该属性,即可正常访问辣

Update sysusers set sid = 0xCC1DF25210133249AD7839836BFA9385

where name = 'ekyy_office'

-- 上面语句执行后,客户端就可以访问表了.!!!! 2014-12-05 李永忠测试成功..

相关文档
最新文档