SQL Serverデータベースに役割をドロップ?
-
19-09-2019 - |
質問
私は私の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;
所属していません StackOverflow