Vinehoo.com近日经常遭到攻击,好几次数据库挂马,前几天把论坛升级了,今天又升级了数据库,把之前的MSSQL 2000 升级到MSSQL 2005,用的是数据库还原功能还原的,遇到了这个帐号孤立的问题。
什么是孤立用户的问题?
比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于test的用户表。
Google 了一下,有很多解决方案,不过很多方案没办法实现,因为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的那个就行了。
Copyright playgoogle.com© 2008
继续阅读《MSSQL2005 孤立用户的解决方法》的全文内容...
相关文章:
分享到:
相关推荐
数据库主体在数据库中拥有架构 无法删除解决方法 把删除不了的孤立用户在数据库属性中的"权限"里面的勾去掉 然后重做步骤
MSSQL2005安装方法和图片详细说明
连接MSSQL2005的客户端工具,免费版。无需安装官方SQL程序。
资源名称:MSSQL2005数据库版本资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
MSSQL2005,MYSQL的驱动包.。。。。。。。。。。
MSSQL2005数据库使用方法
MSSQL 2005数据库技术与应用吧 第一章数据库基础 第二章SQL Server 2005的安装与配置……第19章 SQL Server报表服务
mysql同步mssql2005 - MS-SQL Server - 疑难问题
MSSQL2000与MSSQL2005在JDBC URL上有些区别。
mssql2005jsp驱动包mssql2005jsp驱动包mssql2005jsp驱动包mssql2005jsp驱动包mssql2005jsp驱动包mssql2005jsp驱动包mssql2005jsp驱动包mssql2005jsp驱动包
SQL建表练习,供大家练习sql2005的建表
php操作mssql2005的类php操作mssql2005的类php操作mssql2005的类php操作mssql2005的类php操作mssql2005的类
服务器IIS+MSSQL2005+PHP+MYSQL+ZEND环境搭建
mssql2005的自带卸载会留下很多垃圾,这个工具可以很干净的解决这个问题
mssql2005安装截图 SQL2005安装过程(请使用SQL2005标准版(Standard))
解决 Oracle 19c 通过ODBC网关连 MSSQL 2014解决方法,减少大家的工作量。
mssql基础代码,一本mssql2005实例书上的所有代码,自己运行过了,基本包含了初学的所有代码和各项代码
MSSQL2005+VS2005 学校教务处管理系统
mssql2005启动选项工具
MSSQL 2005 还原数据库失败 天地dddd g dfgfdgf 电子书