データベース スキーマの作成
このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、スキーマを作成する方法について説明します。
このトピックの内容
作業を開始する準備:
制限事項と制約事項
セキュリティ
スキーマを作成する方法:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
制限事項と制約事項
新しいスキーマは、データベース ユーザー、データベース ロール、またはアプリケーション ロールのいずれかのデータベース レベルのプリンシパルが所有します。 スキーマ内に作成されるオブジェクトはスキーマの所有者が所有し、sys.objects 内の principal_id は NULL になります。 スキーマが含まれるオブジェクトの所有権は、データベース レベルのプリンシパルに譲渡できますが、スキーマ内のオブジェクトに対する CONTROL 権限は常にスキーマ所有者が保持します。
データベース オブジェクトを作成する場合に、有効なドメイン プリンシパル (ユーザーまたはグループ) をオブジェクト所有者として指定すると、ドメイン プリンシパルがスキーマとしてデータベースに追加されます。 新しいスキーマは、そのドメイン プリンシパルが所有します。
セキュリティ
権限
データベースに対する CREATE SCHEMA 権限が必要です。
別のユーザーを、作成されるスキーマの所有者として指定する場合、呼び出し元は、そのユーザーに対する IMPERSONATE 権限を持っている必要があります。 データベース ロールを所有者として指定する場合、呼び出し元は、データベース ロールのメンバーシップまたはデータベース ロールに対する ALTER 権限のいずれかを持っている必要があります。
[先頭に戻る]
SQL Server Management Studio の使用
スキーマを作成するには
オブジェクト エクスプローラーで、[データベース] フォルダーを展開します。
新しいデータベース スキーマを作成するデータベースを展開します。
[セキュリティ] フォルダーを右クリックし、[新規作成] をポイントして、[スキーマ] をクリックします。
[スキーマ - 新規作成] ダイアログ ボックスの [全般] ページで、[スキーマ名] ボックスに新しいスキーマの名前を入力します。
[スキーマの所有者] ボックスに、スキーマを所有するデータベース ユーザーまたはロールの名前を入力します。 または、[検索] をクリックして [ロールとユーザーの検索] ダイアログ ボックスを開きます。
[OK] をクリックします。
追加オプション
[スキーマ – 新規作成] ダイアログ ボックスには、[権限] と [拡張プロパティ] という 2 つのページもあり、それぞれにオプションが用意されています。
[権限] ページには、すべてのセキュリティ保護可能なリソースと、ログインに付与できる、セキュリティ保護可能なリソースに対する権限が一覧表示されます。
[拡張プロパティ] ページでは、カスタム プロパティをデータベース ユーザーに追加できます。
[先頭に戻る]
Transact-SQL の使用
スキーマを作成するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。
USE AdventureWorks2012; GO -- Creates the schema Sprockets owned by Annik that contains table NineProngs. -- The statement grants SELECT to Mandar and denies SELECT to Prasanna. CREATE SCHEMA Sprockets AUTHORIZATION Annik CREATE TABLE NineProngs (source int, cost int, partnumber int) GRANT SELECT ON SCHEMA::Sprockets TO Mandar DENY SELECT ON SCHEMA::Sprockets TO Prasanna; GO
詳細については、「CREATE SCHEMA (Transact-SQL)」を参照してください。
[先頭に戻る]