我想放棄我的SQL Server數據庫中的角色之一。我放棄了角色中的所有成員,當我嘗試刪除角色時,我收到了以下錯誤消息:刪除SQL Server數據庫中的角色?
Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.
有誰知道爲什麼?我查看了自己的模式,並且只有自己的名字有複選標記。
我想放棄我的SQL Server數據庫中的角色之一。我放棄了角色中的所有成員,當我嘗試刪除角色時,我收到了以下錯誤消息:刪除SQL Server數據庫中的角色?
Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.
有誰知道爲什麼?我查看了自己的模式,並且只有自己的名字有複選標記。
您不能刪除擁有模式的數據庫主體。您必須將架構所有權轉移給其他數據庫主體,或者先刪除架構,然後才能刪除數據庫主體。
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;