|
对mssql出现选定的用户拥有对象而无法删除的处理
--将下面的代码在查询分析器中执行,修改修改库名
use 你的库名 go
declare tb cursor local for select 'sp_changeobjectowner ' +quotename( +quotename(user_name(uid)) +'.'+quotename(name),'''') +',''dbo''' from sysobjects where objectproperty(id,N'isusertable')=1 and uid<>user_id('dbo') declare @s nvarchar(4000) open tb fetch tb into @s while @@fetch_status=0 begin exec(@s) fetch tb into @s end close tb deallocate tb
MSSQL备份移植到另一服务器还原时容易遇到的问题…… MSSQL备份移植到另一服务器还原时容易遇到的问题,尤其是从虚拟主机备份回来的数据库在本机还原的问题…
会出现用SQL原来的用户名和密码无效的情况 无法删除某一个系统表 用sa连接做Select时提示表名无效 无法删除原备份数据库中的用户名,提示“因为选定的用户拥有对象,所以无法除去该用户。” 主要原因是原来的备份还原时保留了原用户的信息,导致产生孤立用户……
这时候需要用sp_changeobjectowner 将对象的所有关系更改到另一个用户上,既更改数据库对象的所有者。
格式:
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 例子 在查询分析器中录入:
sp_changeobjectowner 'web102101.tablename', 'dbo' 依次将所有的所属用户都改为dbo,然后现在数据库的用户中把孤立用户删除,再到安全中删除登陆信息。
并可以再依次创建新用户了
|