エクスポート (0) 印刷
すべて展開
展開 最小化
この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

CREATE LOGIN (Transact-SQL)

SQL Server および Windows Azure SQL データベース の データベース エンジン ログインを作成します。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure SQL データベース (初回のリリースから現在のバージョンまで)

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

-- SQL Server Syntax
CREATE LOGIN login_name { 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
-- Syntax for Windows Azure SQL Database

CREATE LOGIN login_name
 { WITH <option_list3> }

<option_list3> ::= 
    PASSWORD = { 'password' }
    [ SID = sid ]

login_name

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

PASSWORD ='password'

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

パスワードでは大文字と小文字が区別されます。 パスワードの長さは 8 文字以上 128 文字以下である必要があります。 パスワードには、a ~ z、A ~ Z、0 ~ 9 およびほとんどの英数字以外の文字を含めることができます。 パスワードには、単一引用符、または login_name を含めることはできません。

PASSWORD =hashed_password

適用対象: SQL Server 2008 から SQL Server 2014。

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

HASHED

適用対象: SQL Server 2008 から SQL Server 2014。

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

MUST_CHANGE

適用対象: SQL Server 2008 から SQL Server 2014。

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

CREDENTIAL =credential_name

適用対象: SQL Server 2008 から SQL Server 2014。

新しい SQL Server ログインにマップする資格情報の名前を指定します。 この資格情報はサーバー内に存在する必要があります。現在このオプションは、資格情報をログインに関連付けるだけです。 資格情報を sa ログインにマップすることはできません。

SID = sid

適用対象: SQL Server 2008 から SQL Server 2014。

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

DEFAULT_DATABASE =database

適用対象: SQL Server 2008 から SQL Server 2014。

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

DEFAULT_LANGUAGE =language

適用対象: SQL Server 2008 から SQL Server 2014。

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

CHECK_EXPIRATION = { ON | OFF }

適用対象: SQL Server 2008 から SQL Server 2014。

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

CHECK_POLICY = { ON | OFF }

適用対象: SQL Server 2008 から SQL Server 2014。

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

Windows のポリシーで強力なパスワードが求められる場合は、次の 4 つの特性のうちの少なくとも 3 つをパスワードに含める必要があります。

  • 大文字 (A ~ Z)。

  • 小文字 (a ~ z)。

  • 数字 (0 ~ 9)。

  • スペース、_、@、*、^、%、!、$、#、& などの英数字以外の文字。

WINDOWS

適用対象: SQL Server 2008 から SQL Server 2014。

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

CERTIFICATE certname

適用対象: SQL Server 2008 から SQL Server 2014。

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

ASYMMETRIC KEY asym_key_name

適用対象: SQL Server 2008 から SQL Server 2014。

ログインに関連付ける非対称キーの名前を指定します。 このキーは、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 のインスタンス間でログインおよびパスワードを転送する方法」を参照してください。

ログインを作成すると、自動的に新しいログインが有効になり、ログインにサーバー レベルの CONNECT SQL 権限が与えられます。

Windows Azure SQL データベース ログイン

SQL データベース では、CREATE LOGIN ステートメントがバッチ内の唯一のステートメントである必要があります。

sqlcmd などの SQL データベースに接続するいくつかのメソッドでは、<login>@<server> の表記法を使用して、接続文字列のログイン名に SQL データベース サーバー名を追加する必要があります。 たとえば、ログインが login1 で、SQL データベース サーバーの完全修飾名が servername.database.windows.net である場合、接続文字列の username パラメーターは login1@servername となる必要があります。 username パラメーターの合計の長さは 128 文字であるため、login_name は、127 文字からサーバー名の長さを差し引いた文字数に制限されます。 この例では、servername が 10 文字であるため、login_name には 117 文字までしか指定できません。

SQL データベース では、ログインを作成するには master データベースに接続する必要があります。

SQL Server ルールを使用すると、<loginname>@<servername> 形式の SQL Server 認証ログインを作成できます。 SQL データベース サーバーが myazureserver で、ログインが myemail@live.com である場合、myemail@live.com@myazureserver としてログインを指定する必要があります。

SQL データベース ログインの詳細については、「Windows Azure SQL データベースにおけるデータベースとログインの管理」を参照してください。

SQL Server では、サーバーに対する ALTER ANY LOGIN 権限または securityadmin 固定サーバー ロールのメンバーシップが必要です。

SQL データベース では、(準備プロセスによって作成される) サーバーレベルのプリンシパルのログインまたは master データベースの loginmanager データベース ロールのメンバーだけが新しいログインを作成できます。

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

ログインが作成されたら、ログインは データベース エンジン または SQL データベース に接続できますが、public ロールに与えられた権限しか持ちません。 次の操作のいくつかを実行することを検討してください。

  • データベースに接続するには、ログイン用のデータベース ユーザーを作成する必要があります。 詳細については、「CREATE USER (Transact-SQL)」を参照してください。

  • CREATE SERVER ROLE (Transact-SQL) を使用してユーザー定義サーバー ロールを作成します。 ユーザー定義サーバー ロールに新しいログインを追加するには、ALTER SERVER ROLEADD MEMBER を使用します。 詳細については、「CREATE SERVER ROLE (Transact-SQL)」および「ALTER SERVER ROLE (Transact-SQL)」を参照してください。

  • 固定サーバー ロールにログインを追加するには、sp_addsrvrolemember を使用します。 詳細については、「サーバー レベルのロール」および「sp_addsrvrolemember (Transact-SQL)」を参照してください。

  • 新しいログインまたはログインを含むロールにサーバー レベルの権限を許可するには、GRANT ステートメントを使用します。 詳細については、「GRANT (Transact-SQL)」を参照してください。

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

次の例では、特定のユーザーのログインを作成し、パスワードを割り当てます。

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

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

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

適用対象: SQL Server 2008 から SQL Server 2014。

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

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

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

適用対象: SQL Server 2008 から SQL Server 2014。

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

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

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

適用対象: SQL Server 2008 から SQL Server 2014。

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

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

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

適用対象: SQL Server 2008 から SQL Server 2014。

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

コミュニティの追加

追加
表示:
© 2015 Microsoft