ログインの作成

適用対象:SQL Server (サポートされているすべてのバージョン) Azure SQLデータベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

この記事では、SQL Server Management Studio (SSMS) または Transact-SQL を使用して、SQL Server または Azure SQL Database にログインを作成する方法について説明します。 ログインとは、SQL Serverのインスタンスに接続しているユーザーまたはプロセスの ID です。

背景

ログインは、セキュリティ プリンシパル、またはセキュリティで保護されたシステムで認証できるエンティティです。 ユーザーがSQL Serverに接続するにはログインが必要です。 Windows プリンシパル (ドメイン ユーザーや Windows ドメイン グループなど) に基づいてログインを作成することも、Windows プリンシパル (SQL Server ログインなど) に基づいてログインを作成することもできます。

注意

SQL Server認証を使用するには、データベース エンジンで混合モード認証を使用する必要があります。 詳細については、「 認証モードの選択」を参照してください。

Azure SQLでは、データベース、Azure SQL Managed Instance、および Azure Synapse Analytics (専用 SQL プールのみ) をAzure SQLするために認証に使用する Azure Active Directory サーバー プリンシパル (ログイン) が導入されました。

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

注意

ログインがSQL Serverに接続すると、マスター データベースで ID が検証されます。 包含データベース ユーザーを使用して SQL Server と SQL Database のデータベース レベルでの接続が認証されます。 包含データベース ユーザーを使用する場合、ログインは必要ありません。 包含データベースとは、他のデータベースや、データベースをホストするSQL ServerまたはSQL Database (およびマスター データベース) のインスタンスから分離されたデータベースです。 SQL Server では、Windows 認証と SQL Server 認証の両方で包含データベース ユーザーがサポートされます。 SQL Databaseを使用して、包含データベース ユーザーとデータベース レベルのファイアウォール規則を結合します。 詳細については、「 包含データベース ユーザー - データベースの可搬性を確保する」を参照してください。

セキュリティ

SQL Serverには、サーバーに対する ALTER ANY LOGIN または ALTER LOGIN 権限が必要です。

SQL Databaseには、loginmanager ロールのメンバーシップが必要です。

SQL SERVERの SSMS を使用してログインを作成する

  1. オブジェクト エクスプローラーで、新しいログインを作成するサーバー インスタンスのフォルダーを展開します。

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

  3. [ログイン - 新規作成] ダイアログ ボックスの [全般] ページで、 [ログイン名] ボックスにユーザーの名前を入力します。 または、[ 検索]を選択します 。[ ユーザーまたはグループの選択 ] ダイアログ ボックスを開きます。

    検索を選択した場合 ...:

    1. [ このオブジェクトの種類を選択] で[ オブジェクトの種類]... を選択して[ オブジェクトの種類 ]ダイアログ ボックスを開き、 組み込みのセキュリティ プリンシパルグループおよびユーザーのいずれかまたはすべてを選択します。 [ビルトイン セキュリティ プリンシパル][ユーザー] が既定で選択されます。 終わったら、 [OK] を選択します。

    2. [この場所から場所... ] を選択して [場所] ダイアログ ボックスを開き、使用可能なサーバーの場所のいずれかを選択します。 終わったら、 [OK] を選択します。

    3. [選択するオブジェクト名を入力してください (例)] で、検索するユーザー名またはグループ名を入力します。 詳細については、「 [ユーザー、コンピューターまたはグループの選択] ダイアログ ボックス」を参照してください。

    4. 詳細な検索オプションについては、[ 詳細設定].. . を選択します。 詳細については、「 [ユーザー、コンピューターまたはグループの選択] ダイアログ ボックス - [詳細設定] ページ」を参照してください。

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

  4. Windows プリンシパル上に基づいてログインを作成するには、 [Windows 認証] を選択します。 これは既定値です。

  5. SQL Server データベースに保存されるログインを作成するには、認証SQL Server選択します。

    1. [パスワード] ボックスに、新しいユーザーのパスワードを入力します。 [パスワードの確認] ボックスに、パスワードを再度入力します。

    2. 既存のパスワードを変更する場合は、 [古いパスワードを指定する] を選択し、古いパスワードを [古いパスワード] ボックスに入力します。

    3. 複雑さと施行のパスワード ポリシー オプションを適用するには、 [パスワード ポリシーを適用する] を選択します。 詳細については、「 Password Policy」をご参照ください。 [SQL Server 認証] が選択されている場合、これは既定のオプションです。

    4. 失効に関するパスワード ポリシー オプションを適用するには、 [パスワードの期限を適用する] を選択します。 このチェック ボックスをオンにする場合は、 [パスワード ポリシーを適用する] がオンになっている必要があります。 [SQL Server 認証] が選択されている場合、これは既定のオプションです。

    5. ユーザーにログインの初回使用後に新しいパスワードの作成を強制するには、 [ユーザーは次回ログイン時にパスワードを変更する] を選択します。 このチェック ボックスをオンにする場合は、 [パスワードの期限を適用する] がオンになっている必要があります。 [SQL Server 認証] が選択されている場合、これは既定のオプションです。

  6. ログインをスタンドアロン セキュリティ証明書に関連付けるには、 [証明書にマップ済み] を選択し、一覧から既存の証明書の名前を選択します。

  7. ログインをスタンドアロン非対称キーに関連付けるには、 [非対称キーにマップ済み] を選択し、一覧から既存のキーの名前を選択します。

  8. ログインをセキュリティ資格情報に関連付けるには、[ 資格情報にマップ] チェック ボックスをオンにし、一覧から既存の資格情報を選択するか、[ 追加] を選択して新しい資格情報を作成します。 ログインからセキュリティ資格情報へのマッピングを削除するには、[ マップされた 資格情報] から資格情報を選択し、[削除] を選択 します。 一般的な資格情報の詳細については、「 資格情報 (データベース エンジン)」を参照してください。

  9. [既定のデータベース] の一覧から、ログインの既定のデータベースを選択します。 [マスター] はこのオプションの既定値です。

  10. [既定の言語] の一覧から、ログインの既定の言語を選択します。

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

追加オプション

[ログイン - 新規作成] ダイアログ ボックスでは、 [サーバー ロール][ユーザー マッピング][セキュリティ保護可能なリソース][状態] の 4 つの追加ページにもオプションがあります。

サーバーの役割

注意

これらのサーバー ロールは、SQL Databaseでは使用できません。

[サーバー ロール] ページには、新しいログインに割り当てることができるすべての可能なロールが一覧表示されます。 次のオプションを使用できます。

[bulkadmin] チェック ボックス
bulkadmin 固定サーバー ロールのメンバーは、BULK INSERT ステートメントを実行できます。

[dbcreator] チェック ボックス
dbcreator 固定サーバー ロールのメンバーは、任意のデータベースを作成、変更、削除、および復元できます。

[diskadmin] チェック ボックス
diskadmin 固定サーバー ロールのメンバーは、ディスク ファイルを管理できます。

[processadmin] チェック ボックス
processadmin 固定サーバー ロールのメンバーは、データベース エンジンのインスタンスで実行されているプロセスを終了できます。

[public] チェック ボックス
すべて SQL Server ユーザー、グループ、およびロールは、既定で public 固定サーバー ロールに属します。

[securityadmin] チェック ボックス
securityadmin 固定サーバー ロールのメンバーは、ログインとログインのプロパティを管理します。 このメンバーは、サーバー レベルの権限を許可、拒否、および禁止できます。 また、データベース レベルの権限も許可、拒否、および禁止できます。 また、 SQL Server ログインのパスワードをリセットできます。

[serveradmin] チェック ボックス
serveradmin 固定サーバー ロールのメンバーは、サーバー全体の構成オプションを変更したり、サーバーをシャットダウンしたりできます。

[setupadmin] チェック ボックス
setupadmin 固定サーバー ロールのメンバーは、リンク サーバーを追加および削除でき、一部のシステム ストアド プロシージャを実行することもできます。

[sysadmin] チェック ボックス
sysadmin 固定サーバー ロールのメンバーは、データベース エンジンで任意のアクティビティを実行できます。

ユーザー マッピング

[ユーザー マッピング] ページには、すべての可能なデータベースと、ログインに適用できるデータベースに対するデータベース ロール メンバーシップが一覧表示されます。 選択したデータベースによって、ログインに使用できるロールのメンバーシップが決まります。 このページで使用できるオプションを次に示します。

[このログインにマップされたユーザー]
このログインでアクセスできるデータベースを選択します。 データベースを選択すると、[database_name のデータベース ロール メンバーシップ] ペインに有効なデータベース ロールが表示されます。

Map
下の一覧にあるデータベースへのアクセスを、ログインに許可します。

[データベース]
サーバーで利用できるデータベースを一覧表示します。

User
ログインにマップするデータベース ユーザーを指定します。 既定では、データベース ユーザーの名前はログインと同じになります。

[既定のスキーマ]
ユーザーの既定のスキーマを指定します。 ユーザーが最初に作成されるときの既定のスキーマは、 dboです。 まだ存在しない既定のスキーマを指定できます。 Windows グループ、証明書、または非対称キーにマップされているユーザーの既定のスキーマを指定することはできません。

[database_name では guest アカウントが有効]
選択したデータベースで guest アカウントが有効かどうかを示す読み取り専用属性です。 guest アカウントを有効または無効にするには、guest アカウントの [ログインのプロパティ] ダイアログ ボックスの [状態] ページを使用します。

[database_name のデータベース ロール メンバーシップ]
指定されたデータベースにおけるユーザーのロールを選択します。 すべてのユーザーは、すべてのデータベースの パブリック ロールのメンバーであり、削除することはできません。 データベース ロールの詳細については、「 データベース レベルのロール」を参照してください。

[セキュリティ保護可能なリソース]

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

上のグリッド
権限を設定できるアイテムが 1 つ以上表示されます。 上のグリッドに表示される列は、プリンシパルまたはセキュリティ保護可能なリソースによって異なります。

アイテムを上のグリッドに追加するには:

  1. [Search] を選択します。

  2. [オブジェクトの追加] ダイアログ ボックスで、[特定のオブジェクト...]、[すべての種類のオブジェクト]、[サーバーserver_name] のいずれかを選択します。 [OK] を選択します。

    注意

    [サーバー server_name] を選択すると、そのサーバーのセキュリティ保護可能なすべてのオブジェクトが上のグリッドに自動的に入力されます。

  3. [特定のオブジェクト] を選択した場合:

    1. [ オブジェクトの選択 ] ダイアログ ボックスの [ これらのオブジェクトの種類を選択] で、[ オブジェクトの種類] を選択します。...

    2. [オブジェクトの種類を選択] ダイアログ ボックスで、 [エンドポイント][ログイン][サーバー][可用性グループ][サーバー ロール] のいずれかまたはすべてをオブジェクトの種類として選択します。 [OK] を選択します。

    3. [ 選択するオブジェクト名を入力します (例)]で、[ 参照...] を選択します。

    4. [ オブジェクトの参照 ] ダイアログ ボックスで、[オブジェクトの種類の選択] ダイアログ ボックスで選択した種類の使用可能な オブジェクトのいずれかを選択 し、[OK] を選択 します

    5. [ オブジェクトの選択 ] ダイアログ ボックスで、[OK] を選択 します

  4. [オブジェクトの種類を選択] ダイアログ ボックスで [この種類のすべてのオブジェクト] を選択した場合は、 [エンドポイント][ログイン][サーバー][可用性グループ][サーバー ロール] のいずれかまたはすべてをオブジェクトの種類として選択します。 [OK] を選択します。

名前
グリッドに追加される各プリンシパルまたはセキュリティ保護可能なリソースの名前です。

Type
各アイテムの種類について説明します。

[明示的] タブ
上のグリッドで選択されているセキュリティ保護可能なリソースに適用できる権限が表示されます。 すべての明示的な権限に対してすべてのオプションを使用できるわけではありません。

アクセス許可
権限の名前です。

Grantor
権限を許可したプリンシパルです。

Grant
この権限をログインに対して許可する場合はオンにします。 この権限を取り消す場合はオフにします。

[許可の有無]
一覧表示された権限に対する WITH GRANT オプションの状態を反映します。 このボックスは読み取り専用です。 この権限を適用するには、 GRANT ステートメントを使用します。

Deny
この権限をログインに対して拒否する場合はオンにします。 この権限を取り消す場合はオフにします。

Status

[状態] ページには、選択したSQL Server ログインで構成できる認証と承認のオプションの一部が一覧表示されます。

このページで使用できるオプションを次に示します。

[データベース エンジンに接続する権限]
この設定を操作するときは、選択したログインを、セキュリティ保護可能なリソースに対する権限を許可または拒否できるプリンシパルと考えます。

ログインに CONNECT SQL 権限を付与する場合は、 [許可] を選択します。 ログインに CONNECT SQL 権限を与えない場合は、 [拒否] を選択します。

Login
この設定を操作するときは、選択したログインを、テーブル内のレコードと考えます。 ここに一覧表示される値を変更すると、それらの変更がレコードに適用されます。

無効になっているログインも、レコードとして存在し続けます。 ただし、SQL Serverに接続しようとすると、ログインは認証されません。

このオプションを選択して、このログインを有効または無効にします。 このオプションでは、ENABLE または DISABLE オプションを指定して ALTER LOGIN ステートメントを使用します。

SQL Server 認証
[ログインのロックアウト] チェック ボックスは、選択したログインが SQL Server 認証を使用して接続し、ログインがロックアウトされている場合にのみ使用できます。この設定は読み取り専用です。 ロックアウトされたログインのロックを解除するには、UNLOCK オプションを指定して ALTER LOGIN を実行します。

T-SQL で Windows 認証を使用してログインを作成する

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

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

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

    -- Create a login for SQL Server by specifying a server name and a Windows domain account name.  
    
    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;  
    GO  
    
    

T-SQL でのSQL Server認証を使用してログインを作成する

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

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

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

    -- Creates the user "shcooper" for SQL Server using the security credential "RestrictedFaculty"   
    -- The user login starts with the password "Baz1nga," but that password must be changed after the first login.  
    
    CREATE LOGIN shcooper   
       WITH PASSWORD = 'Baz1nga' MUST_CHANGE,  
       CREDENTIAL = RestrictedFaculty;  
    GO  
    

詳細については、「CREATE LOGIN (Transact-SQL)」を参照してください。

補足情報: ログインを作成した後に実行する手順

ログインを作成した後、ログインはSQL Serverに接続できますが、有用な作業を実行するための十分なアクセス許可を必ずしも持っているわけではありません。 ログインに関して一般的に行われる操作について説明するトピックへのリンクを次に示します。

関連項目