- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL还原数据库后孤立用户问题处理.doc
SQL还原数据库后孤立用户问题处理(SQL 数据库 拥有对象 无法删除)
2008-10-10 01:37
所谓孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录
孤立帐户的产生一般是一下两种:1.将备份的数据库在其它机器上还原;2.重装系统或SQL SERVER之后只还原了用户库
解决方法是使用sp_change_users_login来修复
sp_change_users_login的用法有三种
用法1:exec sp_change_users_login REPORT
列出当前数据库的孤立用户
用法2:exec sp_change_users_login AUTO_FIX,用户名
可以自动将用户名所对应的同名登录添加到syslogins中
用法3:exec sp_change_users_login UPDATE_ONE,用户名,登录名将用户名映射为指定的登录名 ----------------------------------------------------------------------------------------------------------------看看是否有用
SQL孤立用户解决方案
症状
当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题SQL Server 联机丛书中的孤立用户疑难解答主题中没有讲述解决此问题的具体步骤
本文介绍了如何解决孤立用户问题
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题
更多信息
虽然术语登录和用户经常交换使用,但它们之间有很大的不同登录用于用户身份验证,而数据库用户帐户用于数据库访问和权限验证登录通过安全识别符 (SID) 与用户关联访问 SQL Server 服务器需要登录验证特定登录是否有效的过程称为身份验证登录必须与 SQL Server 数据库用户相关联您使用用户帐户控制数据库中执行的活动如果数据库中不存在针对特定登录的用户帐户,使用该登录的用户即使能够连接到 SQL Server 服务器,也无法访问数据库但是,该情形的唯一例外是当数据库包含guest用户帐户时与用户帐户不关联的登录将被映射到 guest 用户相反,如果存在数据库用户,但没有与其关联的登录,则该用户将无法登录到 SQL Server 服务器中
将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户这种情况被称为存在孤立用户
孤立用户疑难解答
当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题以下情形说明了该问题并阐述如何加以解决
1. 向主数据库添加一个登录,并将默认数据库指定为 Northwind: Use master go sp_addlogin test, password, Northwind
2. 向刚创建的用户授予访问权限: Use Northwind go sp_grantdbaccess test
3. 备份数据库 BACKUP DATABASE NorthwindTO DISK = C:MSSQLBACKUPNorthwind.bak
4. 将数据库恢复到其他 SQL Server 服务器: RESTORE DATABASE NorthwindFROM DISK = C:MSSQLBACKUPNorthwind.bak恢复的数据库包含名为test的用户,但没有相应的登录,这就导致test成为孤立用户 5. 现在,为了检测孤立用户,请运行此代码: Use Northwind go sp_change_users_login report输出中列出了所有登录,其中包含 Northwind 数据库的 sysusers 系统表和主数据库的 sysxlogins 系统表中不匹配的条目
解决孤立用户问题的步骤
1. 为前一步中的孤立用户运行以下命令:
Use Northwindgosp_change_users_login update_one, test, test这样,就将服务器登录test与 Northwind 数据库用户test重新连接起来
sp_change_users_login 存储过程还可以使用auto_fix参数对所有孤立用户执行更新,但不推荐这样做,因为 SQL Server 会尝试按名称匹配登录和用户大多数情况下这都是可行的;但是,如果用户与错误登录关联,该用户可能拥有错误的权限
2. 在上一步中运行代码后,用户就可以访问数据库了然后用户可以使用 sp_pas
文档评论(0)