データベース ユーザーの作成

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

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

ユーザーの種類について

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

Diagram that explains the different types of users.

ユーザーの種類の選択

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

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 ユーザーは有効にしないでください。

セキュリティ プリンシパルとして、ユーザーには権限を許可することができます。 ユーザーのスコープはデータベースです。 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
    選択されているデータベースに使用する照合順序を表示します。 このフィールドは読み取り専用です。

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

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

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

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  
    

詳細については、さらに多くの Transact-SQL の例を含む CREATE USER (Transact-SQL) を参照してください

関連項目