随笔 - 3  文章 - 1  评论 - 21 

数据库实例:

 数据库名: MYDB

登录名: user

用户名: user

密码:  123456

数据库转移方式:

方法一:附加数据库

          先决条件: MYDB_Data.MDF   , MYDB_Data.LDF

步骤-:创建新登录。

企业管理器-> 安全性->登录->(右键点击)新建登录,出现下图所示对话框,创建登录用户

         

 

 

 

 

 

步骤二:附加数据库。

企业管理器->数据库->(右键选择)所有任务->(点击)附加数据库,并为默认用户dbo指定登录者。出现下图所示对话框

 

 

 

 

 

   注:上面的指定数据库所有者,是将用户dbo权限附值给你所指定的登录者。

步骤三:修改登录者默认数据库。

企业管理器->安全性->登录,双击‘user’行出现下图所示对话框,修改数据库的默认数据库MYDB下图

 

 

步骤四:验证转移的数据库的用户权限是否分配正确。如下图:

       

 

 

 

  由上图可看出,有些用户(如user),在数据库附加时其丢失了登录者。这样会造成user登录数据库时无权限操作user所有者的数据库对象。

解决办法:

1.打开查询分析器,输入“select sid ,name from master.dbo.syslogins where name='user'”,得到 登录名用“     user”的SID。如下图:

 

2.打开SQL Server属性,选择服务器设置,勾选“允计系统目录直接进行修改”。只有进行此操作后,才可以进行3操作

 


 

 

 

   3.MYDB数据库中用户为’user’的对应SID改为由1获得的SID。这样用户‘user’的权限就附给了登录名’user’,实现的语句如下。

 

update MYDB.dbo.sysusers

SET sid=CONVERT(varbinary, 0x25B815968D1B5D48B4C82AF12417C5D0)

where name='user'

4.打开SQL Server属性,选择服务器设置,勾去“允计系统目录直接进行修改”。

5.重新连接SQL服务,你会发现。User用户的权限已经附给了登录”user”

 

 

方法二:还原数据库

          先决条件: MYDB数据库的备份文件

步骤一: 根据以下信息创建一个空数据库

数据库名: MYDB

登录名: user

用户名: user

密码:  123456

步骤二: 利用SQL Server的还原功能,调用MYDB的备份文件,还原数据库。

 

步骤三: 验证转移的数据库的用户权限是否分配正确。(参考方法一步骤四)

posted on 2008-09-05 12:16 Watchmen 阅读(907) 评论(5)  编辑 收藏 网摘 所属分类: MSSQL

  回复  引用  查看    
2008-09-05 13:13 | 孤傲猎手      
原来附加数据库还有这样的问题呢,我说上次我附加的DB结果程序怎么也不好用。
  回复  引用  查看    
2008-09-05 13:20 | C#守望者      
@孤傲猎手
最近也是苦于这个问题,后来网上找了许多相关资料,但都不够全面。
现在把过程整理一份,与大家分享,让大家少走些弯路

  回复  引用  查看    
2008-09-06 00:19 | 陈晨      
谢谢分享
这种问题很少遇到,但一旦遇到就很难解决了

  回复  引用  查看    
2008-09-06 01:20 | Watchmen      
@陈晨
人人为我,我为人人

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1285031




相关文章:

相关链接: