データベース ユーザーを作成する

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

この記事では、最も一般的な種類のデータベース ユーザーを作成する方法について説明します。 ユーザーには種類が 13 つあります。 完全な一覧については、記事の「CREATE USER (Transact-SQL)」に記載されています。 すべての種類の SQL Server ではデータベース ユーザーがサポートされますが、すべての種類のユーザーがサポートされているとは限りません。

SQL Server Management Studio または Transact-SQL を使用して、データベースを作成できます。

ユーザーの種類について

Management Studio は、データベース ユーザーを作成するときに 6 つのオプションを表示します。 次の図に、6 つのオプションを緑色のボックスに示し、それらが何を表すかを示します。

さまざまな種類のユーザーについて説明する図。

ユーザーの種類の選択

ログインまたはログインにマップされていないユーザー

SQL Server を初めて使用する場合は、作成するユーザーの種類を決定するのが難しい可能性があります。 まず、データベースにアクセスする必要があるユーザーまたはグループがログインを持っているかどうかを確認します。 master データベース内のログインは、SQL Server を管理するユーザー、および SQL Server のインスタンスで複数またはすべてのデータベースにアクセスする必要があるユーザーにとっては一般的です。 ここでは、ログインを持つ SQL ユーザーを作成します。 データベース ユーザーは、ログインの ID として、データベースへの接続時に使用されます。 データベース ユーザーとログインには同じ名前を使用できますが、必ずしもその必要はありません。 このトピックは、既存のログインが SQL Server に存在することを前提としています。 ログインの作成方法の詳細については、「 ログインの作成」を参照してください。

データベースにアクセスする必要があるユーザーまたはグループがログインを持っていない場合、かつ 1 つまたは複数のデータベースにだけアクセスする必要がある場合は、 Windows ユーザー または パスワードを持つ SQL ユーザーを作成します。 包含データベース ユーザーとも呼ばれます。 包含データベース ユーザーは、master データベース内のログインに関連付けられません。 これは、SQL Server のインスタンス間でデータベースを簡単に移動できるようにするときに最適な選択肢です。 SQL Server でこのオプションを使用するには、管理者は最初に SQL Server 用の包含データベースを有効にし、データベースの包含を有効にする必要があります。 詳細については、「包含データベース ユーザー - データベースの可搬性を確保する」を参照してください。

重要

包含データベース ユーザーとして接続するときには、接続文字列の一部としてデータベースの名前を指定する必要があります。 SQL Server Management Studio (SSMS) でデータベースを指定するには、[接続先] ダイアログ ボックスで [オプション] を選択し、[接続プロパティ] タブを選択します。

接続するユーザーが Windows 認証 で認証できない場合は、SQL Server 認証ログイン に基づいて [パスワードを持つ SQL ユーザー] または [ログインを持つ SQL ユーザー]を選択します。 これは、組織外のユーザー (例えば、顧客など) が組織の SQL Server に接続するときには一般的です。

ヒント

組織内のユーザーの場合は、Windows 認証の方が適切です。これは、別のパスワードを覚える必要がないため、および Windows 認証は Kerberos などの他のセキュリティ機能を提供するためです。

背景

ユーザーは、データベース レベルのセキュリティ プリンシパルです。 データベースに接続するためには、データベース ユーザーにログインをマップする必要があります。 異なるデータベースには、1 つのログインを異なるユーザーとしてマップすることができますが、各データベースでは 1 人のユーザーとしてのみマップできます。 部分的包含データベースでは、ログインを持たないユーザーを作成できます。 包含データベース ユーザーの詳細については、「CREATE USER (Transact-SQL)」を参照してください。 データベースで guest ユーザーが有効になっている場合は、データベース ユーザーにマップされていないログインでも、guest ユーザーとしてそのデータベースにアクセスすることができます。

重要

guest ユーザーは無効にするのが一般的です。 必要な場合を除き、guest ユーザーは有効にしないでください。

セキュリティ プリンシパルとして、ユーザーには権限を許可することができます。 ユーザーのスコープはデータベースです。 SQL Server のインスタンス上の特定のデータベースに接続するには、データベース ユーザーにログインをマップする必要があります。 データベース内の権限を許可したり拒否したりする際に、その対象となるのは、ログインではなく、データベース ユーザーです。

アクセス許可

データベースに対する ALTER ANY USER 権限が必要です。

SSMS でユーザーを作成する

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

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

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

  4. [データベース ユーザー - 新規] ダイアログ ボックスの [全般] ページで、[ユーザーの種類] ボックスの一覧で次のユーザーの種類のいずれかを選択します。

    • ログインを持つ SQL ユーザー

    • パスワード を持つ SQL ユーザー (包含データベースが有効になっている場合)

    • ログインを持たない SQL ユーザー

    • 証明書にマップされたユーザー

    • 非対称キーにマップされたユーザー

    • Windows ユーザー

  5. オプションを選択すると、ダイアログ ボックスの残りのオプションを変更できるようになります。 一部のオプションは、特定の種類のデータベース ユーザーにのみ適用されます。 一部のオプションは空白にすることができますが、その場合は既定値が使用されます。

    ユーザー名
    新しいユーザーのユーザー名を入力します。 [ユーザーの種類] で一覧から [Windows ユーザー] を選択した場合は、省略記号 [...] を選択して、[ユーザーまたはグループの選択] ダイアログ ボックスを開くこともできます。

    [ログイン名]
    ユーザーのログインを入力します。 または、省略記号 [...] を選択して [ログインの選択] ダイアログ ボックスを開きます。 [ログイン名] は、 [ユーザーの種類] で一覧から [ログインを持つ SQL ユーザー] または [Windows ユーザー] を選択した場合に使用できます。

    [パスワード][パスワードの確認入力]
    データベースで認証するユーザーのパスワードを入力します。

    既定の言語
    ユーザーの既定の言語を入力します。

    既定のスキーマ
    このユーザーが作成したオブジェクトを所有するスキーマを入力します。 または、省略記号 [...] を選択して [スキーマの選択] ダイアログ ボックスを開きます。 [既定のスキーマ] は、 [ユーザーの種類]で一覧から [ログインを持つ SQL ユーザー][ログインを持たない SQL ユーザー] 、または [Windows ユーザー] を選択した場合に使用できます。

    証明書名
    データベース ユーザーに使用する証明書を入力します。 または、省略記号 [...] を選択して [証明書の選択] ダイアログ ボックスを開きます。 [証明書名] は、 [ユーザーの種類] で一覧から [証明書にマップされたユーザー] を選択した場合に使用できます。

    [非対称キー名]
    データベース ユーザーに使用するキーを入力します。 または、省略記号 [...] を選択して [非対称キーの選択] ダイアログ ボックスを開きます。 [非対称キー名] は、 [ユーザーの種類] で一覧から [非対称キーにマップされたユーザー] を選択した場合に使用できます。

  6. [OK] を選択します。

追加のオプション

[データベース ユーザー - 新規] ダイアログ ボックスでは、[所有されているスキーマ][メンバーシップ][セキュリティ保護可能なリソース][拡張プロパティ] という 4 つの他のページにもオプションが提供されます。

  • [所有されているスキーマ] ページには、新しいデータベース ユーザーが所有できるすべてのスキーマが一覧表示されます。 データベース ユーザーのスキーマを追加または削除するには、 [このユーザーが所有するスキーマ]で、スキーマの横のチェック ボックスをオンまたはオフにします。

  • [メンバーシップ] ページには、新しいデータベース ユーザーが所有できるすべてのデータベース メンバーシップ ロールが一覧表示されます。 データベース ユーザーのロールを追加または削除するには、 [データベース ロールのメンバーシップ]で、ロールの横のチェック ボックスをオンまたはオフにします。

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

  • [拡張プロパティ] ページでは、カスタム プロパティをデータベース ユーザーに追加できます。 このページで使用できるオプションを次に示します。

    データベース
    選択した データベースの名前が表示されます。 このフィールドは読み取り専用です。

    Collation
    選択されているデータベースに使用する照合順序を表示します。 このフィールドは読み取り専用です。

    プロパティ
    オブジェクトの拡張プロパティを表示または指定します。 各拡張プロパティは、オブジェクトに関連付けられたメタデータの名前/値ペアで構成されています。

    省略記号 (...)
    [値] の後ろにある省略記号 [...] を選択すると、[拡張プロパティの値] ダイアログ ボックスが開きます。 ここでは、より大きなテキスト ボックスを使用して拡張プロパティの値を入力または表示できます。 詳細については、「 拡張プロパティの値ダイアログ ボックス」を参照してください。

    削除
    選択されている拡張プロパティを削除します。

T-SQL を使用してユーザーを作成する

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

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

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

    -- Creates the login AbolrousHazem with password '340$Uuxwp7Mcxo7Khy'.  
    CREATE LOGIN AbolrousHazem   
        WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';  
    GO  
    
    -- Creates a database user for the login created above.  
    CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;  
    GO  
    

詳細については、「CREATE USER (Transact-SQL)」にさらに多くの Transact-SQL の例が含まれています。

関連項目