Sql Server 2000 无法打开用户默认数据库。登录失败

今天早上一到公司用“企业管理器”或“查询分析器”连接本地SQL Server时出现此问题:

无法连接到服务器X.X:
服务器: 消息 4064,级别 16,状态 1
[Microsoft][ODBC SQL Server Driver][SQL Server]无法打开用户默认数据库。登录失败。


回想起来,昨天下班之前,同事从我机器上复制了一个数据库文件,我习惯用分离数据库后


再复制给别人,于是昨天就忘了附加回去,今天一来就出错了


原来的SQL Server 注册是用windows身份验证的,但是windows用户的默认数据库被我删除了


于是便进不了数据库,不知道怎么解决,只有Google,Baidu了,结果有用的如下:

 

--------------------我是分割线------------------


回复人:zjcxc(邹建)  五星(高级)  信誉:492      2005-2-4 8:44:15  得分:100

错误提示已经很清楚了,不能连接到发布服务器 X.X,失败的原因是登录用户的默认数据库已经被删除
解决的办法是修改该用户的默认数据库为一个已经存在的数据库:
企业管理器--安全性--用户--右键登录失败的用户--属性--修改默认数据库
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
coos:刚开始这一段我没怎么看明白,我连SQL Server注册都进不去了,怎么看的到安全性。。。

如果你不清楚是由那个用户引起的,则可以在查询分析器中,用sa登录 X.X ,然后执行下面的语句来解决此问题

 

None.gif declare   @s   nvarchar ( 1000 )
None.gif
declare  tb  cursor  local
None.gif
for
None.gif
select  N ' sp_defaultdb N ' + quotename (loginname,N '''' ) + ' ,N '' master '''
None.gif
from  master.dbo.syslogins a
None.gif
where   not   exists (
None.gif
select   *   from  master.dbo.sysdatabases  where  name = a.dbname)
None.gif
open  tb
None.gif
fetch  tb  into   @s
None.gif
while   @@fetch_status = 0
None.gif
begin
None.gif
exec ( @s )
None.gif
fetch  tb  into   @s
None.gif
end
None.gif
close  tb
None.gif
deallocate  tb
None.gif


 

--------------------我是分割线-------------------

 

后来想想只要用不同默认数据库的用户登录就可以了,*^_^*


编辑SQL Server 注册,改为SQL Server身份验证,用sa登录就可以了


还好sa的默认数据库不是被我分离的那个数据库,要不然要重装SQL Server了。


ps:以后要记得用备份数据库复制给他人了。

转载于:https://www.cnblogs.com/coos/archive/2005/11/22/281909.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值