当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server帐号孤立的问题解决

MSSQL
用SQL Server为Web浏览器提供图像(三)(转)
用SQL Server为Web浏览器提供图像(四)(转)
数据库连接范例
数据访问-与数据库建立连接
SQL Server静态页面导出技术1
SQL Server静态页面导出技术2
Access数据库安全的几个问题
保护Access 2000数据库的安全
ACCESS97关于数据库安全的几个问题
如何把access转换到mysql
将Access数据转换为XML格式
通过Access从Web获取MySQL数据
如何将Access和Excel导入到Mysql中之一
如何将Access和Excel导入到Mysql中之二
如何将Access和Excel导入到Mysql中之三
ACCESS数据库向MySQL快速迁移小程序(一)
ACCESS数据库向MySQL快速迁移小程序(二)
长期使用中型Access数据库的一点经验
微软SQL Server 2005的30项顶尖特性
SQL Server2000企业版安装教程

MSSQL 中的 SQL Server帐号孤立的问题解决


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 114 ::
收藏到网摘: n/a

网站近日经常遭到攻击,好几次数据库挂马,前几天把论坛升级了,今天又升级了数据库,把之前的MSSQL 2000 升级到MSSQL 2005,用的是数据库还原功能还原的,遇到了这个帐号孤立的问题。

什么是孤立用户的问题?

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

 

我们在建立了同样名称的数据库登录用户后,数据库中的表我们照样不能使用时因为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的那个就行了。