次の方法で共有


CREATE LOGIN (Transact-SQL)

新しい SQL Server ログインを作成します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

CREATE LOGIN loginName { WITH <option_list1> | FROM <sources> }

<option_list1> ::= 
    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
    [ , <option_list2> [ ,... ] ]

<option_list2> ::=  
    SID = sid
    | DEFAULT_DATABASE = database    
    | DEFAULT_LANGUAGE = language
    | CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}
    | CREDENTIAL = credential_name 

<sources> ::=
    WINDOWS [ WITH <windows_options>[ ,... ] ]
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

<windows_options> ::=      
    DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

引数

  • loginName
    作成するログインの名前を指定します。ログインには、SQL Server ログイン、Windows ログイン、証明書にマップされるログイン、および非対称キーにマップされるログインの、4 種類があります。Windows ドメイン アカウントからマップされるログインを作成する場合は、Windows 2000 よりも前の Windows で使用されていた [<domainName>\<loginName>] 形式のユーザー ログイン名を使用する必要があります。loginName@DomainName 形式の UPN は使用できません。後の例 D を参照してください。

  • PASSWORD ='password'
    SQL Server ログインのみに適用されます。作成するログインのパスワードを指定します。複雑なパスワードの使用をお勧めします。詳細については、「強力なパスワード」を参照してください。

  • PASSWORD **=**hashed_password
    HASHED キーワードにのみ適用されます。作成するログインのパスワードのハッシュ値を指定します。

  • HASHED
    SQL Server ログインのみに適用されます。PASSWORD 引数の後に入力されたパスワードが、ハッシュ済みであることを示します。このオプションを選択しなかった場合、パスワードとして入力した文字列は、ハッシュされてからデータベースに格納されます。このオプションは、あるサーバーから別のサーバーにデータベースを移行する場合にのみ使用してください。新しいログインを作成する場合は HASHED オプションを使用しないでください。

  • MUST_CHANGE
    SQL Server ログインのみに適用されます。このオプションを指定した場合は、新しいログインを最初に使用するとき、新しいパスワードの入力求めるメッセージがユーザーに対して表示されます。

  • CREDENTIAL **=**credential_name
    新しい SQL Server ログインにマップする資格情報の名前を指定します。この資格情報はサーバー内に存在する必要があります。現在このオプションは、資格情報をログインに関連付けるだけです。このオプションは、将来のバージョンの SQL Server で拡張される可能性があります。

  • SID = sid
    SQL Server ログインのみに適用されます。新しい SQL Server ログインの GUID を指定します。このオプションを選択しない場合は、GUID が自動的に割り当てられます。

  • DEFAULT_DATABASE **=**database
    ログインに割り当てられる既定のデータベースを指定します。このオプションを指定しない場合は、既定のデータベースが master に設定されます。

  • DEFAULT_LANGUAGE **=**language
    ログインに割り当てられる既定の言語を指定します。このオプションを指定しない場合は、サーバーの現在の既定の言語が既定の言語になります。サーバーの既定の言語が将来変更されても、ログインの既定の言語は変更されません。

  • CHECK_EXPIRATION = { ON | OFF }
    SQL Server ログインのみに適用されます。このログインに、パスワードの有効期限ポリシーを適用するかどうかを指定します。既定値は OFF です。

  • CHECK_POLICY = { ON | OFF }
    SQL Server ログインのみに適用されます。このログインに、SQL Server を実行しているコンピュータの、Windows のパスワード ポリシーを適用するかどうかを指定します。既定値は ON です。

  • WINDOWS
    ログインを Windows ログインにマップするよう指定します。

  • CERTIFICATE certname
    ログインに関連付ける証明書の名前を指定します。この証明書は、master データベース内に既に存在する必要があります。

  • ASYMMETRIC KEY asym_key_name
    ログインに関連付ける非対称キーの名前を指定します。このキーは、master データベース内に既に存在する必要があります。

説明

パスワードでは大文字と小文字が区別されます。

パスワードの事前ハッシュは、SQL Server ログインを作成するときにのみサポートされます。

MUST_CHANGE を指定した場合、CHECK_EXPIRATION および CHECK_POLICY は ON に設定する必要があります。ON に設定しない場合、ステートメントは失敗します。

CHECK_POLICY = OFF と CHECK_EXPIRATION = ON の組み合わせはサポートされていません。

CHECK_POLICY を OFF に設定すると、lockout_time は再設定され、CHECK_EXPIRATION は OFF に設定されます。

重要な注意事項重要

CHECK_EXPIRATION および CHECK_POLICY は、Windows Server 2003 以降でのみ適用されます。詳細については、「パスワード ポリシー」を参照してください。

証明書または非対称キーから作成されたログインはコード署名用にのみ使用されます。SQL Server への接続には使用できません。証明書または非対称キーからログインを作成できるのは、その証明書または非対称キーが master に存在している場合のみです。

権限

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

CREDENTIAL オプションを使用する場合は、サーバーに対する ALTER ANY CREDENTIAL 権限も必要です。

A. パスワード付きのログインを作成する

次の例では、特定のユーザー ID のログインを作成し、パスワードを割り当てます。MUST_CHANGE オプションが指定されているため、ユーザーは、最初にサーバーに接続するときにこのパスワードを変更する必要があります。

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO

B. 資格情報にマップされるログインを作成する

次の例では、ユーザー ID を使用して、特定のユーザーのログインを作成します。このログインは資格情報にマップされます。

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>', 
    CREDENTIAL = <credentialName>;
GO

C. 証明書からログインを作成する

次の例では、master の証明書から特定のユーザー ID のログインを作成します。

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<loginName> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO

D. Windows ドメイン アカウントからログインを作成する

次の例では、Windows ドメイン アカウントからログインを作成します。

CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
GO