web-dev-qa-db-ja.com

データベース所有者特権を持つSQL Serverユーザーを削除する方法

SQL Serverデータベースからdbownerスキーマを持つユーザーを削除する必要があります。このエラーメッセージが表示されるため、そのままドロップすることはできません。

ユーザー「ネットワークサービス」のドロップに失敗しました。 (Microsoft.SqlServer.Smo)

データベースプリンシパルはデータベース内のスキーマを所有しており、削除できません。 (Microsoft SQL Server、エラー:15138)

このユーザーが所有するスキーマのチェックを外してデータベース所有者を削除しようとすると、何も実行されません。私の質問は、このユーザーを削除するか、その名前を「ネットワークサービス」から「NT AUTHORITY\NETWORK SERVICE」に編集する方法です。

13
Sofia Khwaja

最初に別の所有者を追加します。

元のリンクはダウンしました-ここでも利用可能です https://web.archive.org/web/20160406021232/www.itorian.com/2012/12/the-database-principal-owns-schema-in。 html

10
Kevin M

同じ問題が発生しました。2つのスクリプトを実行すると、問題が解決します。

これを試して:

このクエリでは、AdventureWorksデータベースの結果としてユーザースキーマを取得できます。

USE AdventureWorks;
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('your username');

スキーマ名を取得した後、次のようにスキーマの承認を変更できます。

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;

このクエリでdb_owner最初のクエリから取得するスキーマ名。

最後に、エラーなしでユーザーを削除できます。

私のソース: SQL SERVER –修正:エラー:15138

10
Hasan Fathi

同じ問題がありますが、ユーザーを削除できません

foo

それが言うので:

enter image description here

したがって、[セキュリティ]-> [スキーマ]に移動してdboを探し、右クリックして[プロパティ]を選択する必要があります。

enter image description here

次に変更する

foo

dbo

その後、削除するユーザーを削除できます。

enter image description here

0
Willy David Jr