次の方法で共有


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

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

このトピックの内容

はじめに

制限事項と制約事項

  • 新しいスキーマは、データベース ユーザー、データベース ロール、またはアプリケーション ロールのいずれかのデータベース レベルのプリンシパルが所有します。 スキーマ内に作成されるオブジェクトはスキーマの所有者が所有し、 sys.objects 内の principal_idは NULL になります。 スキーマが含まれるオブジェクトの所有権は、データベース レベルのプリンシパルに譲渡できますが、スキーマ内のオブジェクトに対する 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)」を参照してください。