2023年11月27日发(作者:)
sqlserver 2008不能删除发布,不能修改数据库所有
者,不能删除用户的解决办法
原:sqlserver 2008不能删除发布,不能修改数据库所有者,不能删除用户的解决
办法 Author by ZhangWei 20120816
因为 订阅服务器下线,所以需要删除发布服务器上无用的发布
对应原数据库 为 ETL_DB ,但是 其所有者是
'ERPSQL2Administrator'
修改owner为sa解决发布可以删除问题
USE ETL_DB;
EXEC sp_changedbowner 'sa';
再删除发布可以删除。
解决了发布无法删除的问题。
将owner恢复成原来的报错
USE ETL_DB;
EXEC sp_changedbowner
'ERPSQL2Administrator';
消息 15110,级别 16,状态 1,第 1 行
推荐的新数据库所有者已经是此数据库的用户或在此数据
库中已有一个别名。
USE ETL_DB;
EXEC sp_changedbowner
'ERPSQL2Administrator';
推荐的新数据库所有者已经是此数据库的用户或在此数据
库中已有一个别名
USE ETL_DB;
EXEC sp_changedbowner 'ERPSQL2Administrator';
消息 15110,级别 16,状态 1,第 1 行
推荐的新数据库所有者已经是此数据库的用户或在此数据库中已有一个别名。
USE ETL_DB;
EXEC sp_changedbowner 'sa';
删除发布成功
USE ETL_DB;
EXEC sp_changedbowner 'ERPSQL2Administrator';
消息 15110,级别 16,状态 1,第 1 行
推荐的新数据库所有者已经是此数据库的用户或在此数据库中已有一个别名。
USE [ETL_DB]
GO
/****** Object: User [ERPSQL2Administrator] Script Date:
08/16/2012 10:49:44 ******/
IF EXISTS (SELECT * FROM se_principals WHERE name =
N'ERPSQL2Administrator')
DROP USER [ERPSQL2Administrator]
GO
--消息 15138,级别 16,状态 1,第 4 行
--数据库主体在该数据库中拥有 架构,无法删除。
--按照下文的步骤:
1、数据库的表、视图、存储过程等等,如果架构为【ERPSQL2Administrator],
将其所有者全部改为dbo。--yes
2、在“安全性”-“架构”下,如果名称对象中有ERPSQL2Administrator]这一
项,将其直接删除;如果其它对象的所有者是ERPSQL2Administrator],将其所
有者改为dbo
3、在“安全性”-“角色”-“数据库角色”下,打开每一个角色的属性,从db_owner
“角色列表”中将【ERPSQL2Administrator]删除。
然后执行drop 用户成功
IF EXISTS (SELECT * FROM se_principals WHERE name =
N'ERPSQL2Administrator')
DROP USER [ERPSQL2Administrator]
GO
--命令已成功完成。


发布评论