我正在尝试删除我的SQL Server数据库中的一个角色。我从角色中删除了所有成员,当我尝试删除角色时,我收到了此错误消息:
Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.
有谁知道为什么?我检查了自己的架构,它只有自己的名字检查标志。
答案 0 :(得分:2)
您不能删除拥有架构的数据库主体。您必须将架构所有权转移到其他数据库主体,或者在删除数据库主体之前删除架构。
答案 1 :(得分:0)
15138错误是由于您尝试删除的用户拥有架构。
如果您运行以下查询,您将获得该用户拥有的架构。
USE DatabaseName;
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('UserName');
让我们说它返回'db_denydatareader'架构。然后你可以分配 使用以下查询将该架构设置为默认用户'dbo'。
ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;