SQL Server 2008でデータベースダイアグラムを作成しようとしましたが、エラーが発生しました。
このデータベースには有効な所有者がないため、データベースダイアグラムサポートオブジェクトをインストールできません。続行するには、最初に[データベースのプロパティ]ダイアログボックスの[ファイル]ページまたはALTER AUTHORIZATIONステートメントを使用してデータベース所有者を有効なログインに設定し、次にデータベースダイアグラムサポートオブジェクトを追加します。
次に、私は次を試しました:
EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO
次のエラーが表示されます:
メッセージ15404、レベル16、状態11、行1 Windows NTグループ/ユーザー「WIN-NDKPHUPPNFL\Administrator」に関する情報を取得できませんでした。エラーコード0x534。
問題は、PCの名前が「DevPC」に変更されたことです。更新スクリプトでもこれを変更しましたが、それでも同じエラー15404です。
この迷惑なエラーを修正するにはどうすればよいですか?
データベースの所有権については、SQL認証アカウントを考慮する必要があります。その後、アカウントの出入り、データベースまたはインスタンスが別のサーバーに移動すること、および次のPC名の変更について心配する必要はありません。私たちが使用するシステムはいくつかあります。
ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];
または、所有者をそのローカル管理者アカウントに変更する場合は、次のようにする必要があります。
ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];
マシンの名前をDevPC
に変更すると、以前はWIN-ND...\Administrator
という名前だったローカルアカウントが削除され、データベースの現在の所有者も無効になったためです。
SELECT @@SERVERNAME;
が正確でない場合(DevPC
と言う必要があります)、サーバー名の変更がSQL Server内で確実に保持されるようにするために、以下を発行することもできます。
EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO
SQL Server Management Studioで次を実行します。
これを実行すると、データベースダイアグラムにアクセスできるようになります。
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
できます。
所有者テキストボックスに「sa」ではなく「SA」と入力します。これは私のために働いた。
同じ問題がありました。
職場で同じ日に自宅で作成した図を表示したかった。しかし、私はこのメッセージのためにできませんでした。
データベースの所有者が私のコンピューターのユーザーであることがわかりました-予想どおり。しかし、コンピューターは会社のドメイン内にあり、会社のネットワークに接続していないため、データベースは所有者を解決できませんでした。
私がやったのは所有者をローカルユーザーに変更するで、それでうまくいきました!!
これが誰かを助けることを願っています。
データベース、プロパティ、ファイル、所有者を右クリックしてユーザーを変更します
データベースを選択-右クリック-プロパティを選択
ページの左側でファイルを選択します
OWNERボックスで、3つのドット(…)があるボタンを選択します
次に、ユーザー「sa」を選択して[OK]をクリックします
これは私のためにそれを修正しました。データベースプロパティウィンドウの「ファイル」セクションにある所有者を設定し、管理スタジオによってスクリプト化されます。
USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
sp_changedbowner documentation によると、これは現在廃止されています。
イスラエルの答えに基づきます。アーロンの答えは、これの非推奨ではないバリエーションです。
1.データベースを右クリックし、2。プロパティを選択します。 3. Microsoft SQL 2008を使用している場合、互換性レベルでオプションを選択し、sql 2008 [100]を選択します。
4.次に、ファイルを選択し、所有者のテキストボックスに(sa)と書き込みます
100%は私のために働きます。
管理者として入力し、Microsoft SQL Server Management Studioを右クリックして、管理者として実行する必要があります
この問題を解決する簡単な方法は、データベースの名前を右クリックし、「新しいクエリ」を選択し、「exec sp_changedbowner 'sa'」と入力してクエリを実行することです。その後、あなたは行ってもいいでしょう。
私はこれを経験しました。このページの提案とSQL Authorityの提案(同じことです)を読みましたが、上記のいずれも機能しませんでした。
最後に、アカウントを削除して再作成しました(同じユーザー名/パスワードで)。そのように、すべての問題はなくなりました。
悲しいことに、これは何が間違っていたのかわからないので、他のことを共有できないことを意味します。
クエリエディタでのみ実行する必要がありますALTER AUTHORIZATION ON DATABASE :: YourDatabase TO [domain\account];