Sql Server 2000
数据库 AB 为强制还原的数据库,数据库中有一个用户ABC,在Master库中不存在该用户。
执行操作:删除数据库用户ABC
错误提示:无法删除,该用户拥有数据库中的对象
问题:如何查询该用户在数据库AB中拥有的对象,如何强制删除该用户?
---------------------------------------------------------------
例子:
创建一个测试表对象 TestTable ,并将 owner 设为用户 lily
CREATE TABLE [lily].[TestTable] ([ID] [int] NULL ) ON [PRIMARY]
试着删除用户 lily ,系统会报告错误,说 lily 是某些对象的 owner ,不能删除
运行下面的代码,就可以获得 lily 所拥有的对象(但运行结果中会出现错误警告,说,lily 拥有某些对象)
declare @UID int
set @UID=user_id('lily')
exec sp_MScheck_uid_owns_anything @UID
下面的代码,可以将对象 TestTable 的 owner 设为 dbo ,这样,就可以删除 lily 了
sp_changeobjectowner 'TestTable','dbo'