Вопрос

Я пытаюсь удалить одну из ролей в моей базе данных 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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top