次の方法で共有


データベース スキーマの作成

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server 2014 でスキーマを作成する方法について説明します。

このトピックについて

開始する前に

制限事項と制約条件

  • 新しいスキーマは、データベース ユーザー、データベース ロール、またはアプリケーション ロールのいずれかのデータベース レベルのプリンシパルが所有します。 スキーマ内で作成されたオブジェクトは、スキーマの所有者によって所有され、sys.objectsに NULL principal_idがあります。 スキーマに含まれるオブジェクトの所有権は、任意のデータベース レベル プリンシパルに転送できますが、スキーマ所有者は常に、スキーマ内のオブジェクトに対する CONTROL 権限を保持します。

  • データベース オブジェクトを作成するときに、有効なドメイン プリンシパル (ユーザーまたはグループ) をオブジェクト所有者として指定すると、ドメイン プリンシパルがスキーマとしてデータベースに追加されます。 新しいスキーマは、そのドメイン プリンシパルによって所有されます。

安全

権限

  • データベースに対する CREATE SCHEMA 権限が必要です。

  • 別のユーザーを、作成されるスキーマの所有者として指定する場合、呼び出し元は、そのユーザーに対する IMPERSONATE 権限を持っている必要があります。 データベース ロールが所有者として指定されている場合、呼び出し元にはロールのメンバーシップまたはロールに対する ALTER 権限のいずれかが必要です。

SQL Server Management Studio の使用

スキーマを作成するには
  1. オブジェクト エクスプローラーで、 [データベース] フォルダーを展開します。

  2. 新しいデータベース スキーマを作成するデータベースを展開します。

  3. [セキュリティ] フォルダーを右クリックし、 [新規作成]をポイントして、 [スキーマ]をクリックします。

  4. [スキーマ - 新規作成] ダイアログ ボックスの [全般] ページで、 [スキーマ名] ボックスに新しいスキーマの名前を入力します。

  5. [スキーマの所有者] ボックスに、スキーマを所有するデータベース ユーザーまたはロールの名前を入力します。 または、[ 検索 ] をクリックして [ 役割とユーザーの検索 ] ダイアログ ボックスを開きます。

  6. OK をクリックします。

追加オプション

[ スキーマ - 新規 ] ダイアログ ボックスには、 アクセス許可拡張プロパティという 2 つの追加ページのオプションも用意されています。

  • [権限] ページには、すべてのセキュリティ保護可能なリソースと、ログインに付与できる、セキュリティ保護可能なリソースに対する権限が一覧表示されます。

  • [拡張プロパティ] ページでは、カスタム プロパティをデータベース ユーザーに追加できます。

Transact-SQL の使用

スキーマを作成するには

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    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)」を参照してください。