数据库实例:
数据库名: MYDB
登录名: user
用户名: user
密码: 123456
数据库转移方式:
方法一:附加数据库
先决条件: MYDB_Data.MDF , MYDB_Data.LDF
步骤-:创建新登录。
企业管理器-> 安全性->登录->(右键点击)新建登录,出现下图所示对话框,创建登录用户
![](/images/cnblogs_com/china-boys/1.jpg)
步骤二:附加数据库。
企业管理器->数据库->(右键选择)所有任务->(点击)附加数据库,并为默认用户dbo指定登录者。出现下图所示对话框
![](/images/cnblogs_com/china-boys/2.jpg)
注:上面的指定数据库所有者,是将用户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的备份文件,还原数据库。
步骤三: 验证转移的数据库的用户权限是否分配正确。(参考方法一步骤四)