web-dev-qa-db-ja.com

SQL Serverデータベースの所有者を変更するにはどうすればよいですか?

誤って[データベースダイアグラム]タブをクリックすると、次のエラーのいずれかが表示されます。

このデータベースには有効な所有者がないため、データベースダイアグラムサポートオブジェクトをインストールできません。続行するには、最初に[データベースのプロパティ]ダイアログボックスの[ファイル]ページまたはALTER AUTHORIZATIONステートメントを使用してデータベース所有者を有効なログインに設定し、次にデータベースダイアグラムサポートオブジェクトを追加します。

- - または - -

データベースには、データベースダイアグラムの使用に必要な1つ以上のサポートオブジェクトがありません。それらを作成しますか?

このデータベースの所有者を「sa」に変更するための構文は何ですか?

58
Even Mien

オブジェクトの所有者を変更するには、次を試してください

EXEC sp_changedbowner 'sa'

しかし、それは問題ではありません。その後、Da Vinci Toolsオブジェクトを作成する必要がある図を見るには(dt_で始まるテーブルとプロシージャが表示されます)その後

90
SQLMenace

データベース所有者を変更するには:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa

SQL Server 2014以降、_sp_changedbowner同様に、MicrosoftはSQL Server 2012以降の「将来の」バージョンで削除することを約束しましたが、SQL Server 2014 BOLから削除しました。

82
Alex Aza

これは、存在しないsp_help_diagram(?)などのオブジェクトの束を作成するプロンプトです。

これは、dbの所有者とは関係ありません。

4
gbn

すべてのDBSの所有者を変更する方法は次のとおりです(システムを除く)

EXEC sp_msforeachdb'
USE [?]
IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb''
BEGIN
 exec sp_changedbowner ''sa''
END
'
0
sawsomething