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 李永忠测试成功..