立即登录 注册新帐号

http://www.chutianz.com - 楚天站长站

会员投稿 匿名投稿 投稿指南 RSS订阅 楚天站长站推荐:
搜索: 您的位置主页 > 网络编程 > Mssql > 阅读资讯:轻松解决MSSQL数据库升级后帐号孤立问题

轻松解决MSSQL数据库升级后帐号孤立问题

2012-02-20 08:31:21 来源:未知 【 】 点击:我要投稿 发表评论

最近我的网站常遭受黑客的攻击,网页挂上黑链,甚至数据库挂上木马,我又从新升级了下程序,打了下补丁,然后又把数据库也进行了升级,把之前的MSSQL 2000 升级到MSSQL 2005,用的是数据库还原功能还原的,遇到了这个帐号孤立的问题,最终还是解决了,不过费了很大的周折,下面看MSSQL数据库升级后帐号孤立问题的解决办法。

首先介绍下什么是孤立用户的问题?

比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于test的用户表。

请教了很多专家,有很多解决方案,不过很多方案没办法实现,因为MSSQL 2005的权限的关系。这里介绍一个经过我验证的解决方法:

我们在建立了同样名称的数据库登录用户后,数据库中的表我们照样不能使用时因为sid的不同,就是系统登录表和数据库用户表中的用户名相同,单是sid字段,数据库中的还是以前旧系统的sid值,所以我们就要把它对应成我们新建的,数据库靠sid来识别用户。

这里可以使用存储过程sp_change_users_login。它有三种动作,分别是report,update_one和auto_fix。运行下面的代码,系统会列出当前数据库的孤立用户数。sp_change_users_login 'report'我们只需要选择当前数据库为testdb,然后运行sp_change_users_login 'update_one','test','test'系统就会提示修复了一个孤立用户。如果没有建立test的登录用户,还可以用 sp_change_users_login 'Auto_Fix', 'test', NULL, 'testpassword'来创建一个登录用户名为test,密码为testpassword的用户与之对应。通常情况下,数据库对象得到访问问题已经解决了。如果有多个数据库中有同一个用户的数据表,只需要选择不同的数据库,执行update_one的那个就行了。

感谢 靓哥 的投稿 本文仅代表作者观点,与楚天站长站立场无关。

分享到:

数据统计中!!

tags:轻松,解决,MSSQL,数据库,升级,帐号,孤立,问题,最近

 责任编辑:靓哥
  • 上一篇:没有了
  • 下一篇:没有了
  • 相关文章列表                                                                                     收藏 - 挑错 - 推荐 - 打印
    评论总数: 条 [ 查看全部 ] 网友评论
    推荐资讯