CREATE LOGIN (Transact-SQL)
新しい SQL Server ログインを作成します。
構文
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 を参照してください。SQL Server 認証ログインは sysname 型であり、識別子のルールに従っている必要があります。このログインに "\" を含めることはできません。Windows ログインには "\" を含めることができます。PASSWORD ='password'
SQL Server ログインのみに適用されます。作成するログインのパスワードを指定します。複雑なパスワードの使用をお勧めします。詳細については、「強力なパスワード」を参照してください。PASSWORD **=**hashed_password
HASHED キーワードにのみ適用されます。作成するログインのパスワードのハッシュ値を指定します。HASHED
SQL Server ログインのみに適用されます。PASSWORD 引数の後に入力されたパスワードが、ハッシュ済みであることを示します。このオプションを選択しなかった場合、パスワードとして入力した文字列は、ハッシュされてからデータベースに格納されます。このオプションは、あるサーバーから別のサーバーにデータベースを移行する場合にのみ使用してください。新しいログインを作成する場合は HASHED オプションを使用しないでください。MUST_CHANGE
SQL Server ログインのみに適用されます。このオプションを指定した場合は、新しいログインを最初に使用するとき、新しいパスワードの入力求めるメッセージがユーザーに対して表示されます。CREDENTIAL **=**credential_name
新しい SQL Server ログインにマップする資格情報の名前を指定します。この資格情報はサーバー内に存在する必要があります。現在このオプションは、資格情報をログインに関連付けるだけです。資格情報を sa ログインにマップすることはできません。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 に存在している場合のみです。
ログインを転送するスクリプトについては、「SQL Server 2005 のインスタンス間でログインおよびパスワードを転送する方法」を参照してください。
権限
サーバーに対する ALTER ANY LOGIN 権限または securityadmin 固定サーバー ロールのメンバーシップが必要です。
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