Удалить роль в базе данных SQL Server? - PullRequest
0 голосов
/ 07 января 2010

Я пытаюсь отбросить одну из ролей в моей базе данных SQL Server. Я удалил всех участников из роли, и когда я попытался удалить роль, я получил это сообщение об ошибке:

Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.

Кто-нибудь знает почему? Я проверил собственную схему, и на ней было только имя чека.

Ответы [ 2 ]

2 голосов
/ 07 января 2010

Вы не можете удалить субъект базы данных, которому принадлежит схема. Вы должны передать владение схемой другому участнику базы данных или удалить схему, прежде чем сможете удалить субъект базы данных.

0 голосов
/ 18 мая 2016

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;
...