sql server出现选定的用户拥有对象而无法删除的处理 |
2006-4-5 19:50:00 |
方法一 首先你需要做的第一件事 企业管理器-〉选择服务器-〉属***-〉服务器设置-〉挑上允许对系统目录。。。-〉确定 第二步 找到你的数据库找到sysusers表那你以前的用户删除 第三步回去吧属***值改回来 第四部重建用户即可 方法二 对mssql出现选定的用户拥有对象而无法删除的处理 Create PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128) AS DECLARE @Name as NVARCHAR(128) DECLARE @Owner as NVARCHAR(128) DECLARE @OwnerName as NVARCHAR(128) DECLARE curObject CURSOR FOR select ’Name’ = name, ’Owner’ = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name OPEN curObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGIN if @Owner=@OldOwner begin set @OwnerName = @OldOwner + ‘.’ + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end – select @name,@NewOwner,@OldOwner FETCH NEXT FROM curObject INTO @Name, @Owner END close curObject deallocate curObject GO MSSQL备份移植到另一服务器还原时容易遇到的问题…… MSSQL备份移植到另一服务器还原时容易遇到的问题,尤其是从虚拟主机备份回来的数据库在本机还原的问题… 会出现用SQL原来的用户名和密码无效的情况 无法删除某一个系统表 用sa连接做Select时提示表名无效 无法删除原备份数据库中的用户名,提示“因为选定的用户拥有对象,所以无法除去该用户。” 主要原因是原来的备份还原时保留了原用户的信息,导致产生孤立用户…… 这时候需要用sp_changeobjectowner 将对象的所有关系更改到另一个用户上,既更改数据库对象的所有者。 格式: sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 例子 在查询分析器中录入: sp_changeobjectowner 'web102101.tablename', 'dbo' 依次将所有的所属用户都改为dbo,然后现在数据库的用户中把孤立用户删除,再到安全中删除登陆信息。 并可以再依次创建新用户了 |
http://blog.xswg.com/memeber/liaoguihui/archives/2006/155.html
mssql:因为选定的用户拥有对象,所以无法除去该用户。的解决方案
2007-11-29 21:59
如果你用数据库自己新建的用户test建立了几张表,然后你的数据库备份/还原到了其他服务器上。你就必须要删除数据库中的原有用户test,才能在新服务器上建立test这个用户。否则你就无法用原配置访问。 此时你删除test这个用户的时候,数据库就会提示“因为选定的用户拥有对象,所以无法除去该用户”。这个时候你需要用sp_changeobjectowner '用户名.表名', 'dbo'来除去test这个用户的全部对象。才能删除用户。例如 sp_changeobjectowner 'test.table1', 'dbo'。 在出去test这个对象后,你就可以删除它,然后再新服务器重建这个对象。 不过这个时候我建议修改DBHelper,让你做数据库操作的时候用全表名,例如:select * from test.table1这样的结构您就可以用其他用户访问,而不需要去操作这个用户 |
http://hi.baidu.com/summer0927/blog/item/0a7146fb8d036767024f5614.html