次の方法で共有


ALTER LOGIN (Transact-SQL)

SQL Server ログイン アカウントのプロパティを変更します。

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

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

構文

-- SQL Server Syntax
ALTER LOGIN login_name 
    { 
    <status_option> 
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    } 
[;]

<status_option> ::= 
        ENABLE | DISABLE

<set_option> ::=            
    PASSWORD = 'password' | hashed_password HASHED
    [ 
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ] 
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL
 
<password_option> ::= 
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::= 
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name

-- Windows Azure SQL Database

ALTER LOGIN login_name 
  { 
      <status_option> 
    | WITH <set_option> [ ,.. .n ] 
  } 
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::= 
    PASSWORD ='password' 
    [
      OLD_PASSWORD ='oldpassword'
    ] 
    | NAME = login_name

引数

  • login_name
    変更する SQL Server ログインの名前を指定します。 ドメイン ログインは角かっこで囲み、[domain\user] の形式で表す必要があります。

  • ENABLE | DISABLE
    このログインを有効にするか無効にするかを指定します。 ログインを無効にしても、既に接続されているログインの動作には影響しません。 無効にしたログインの権限を保持したまま、偽装を継続することができます。

  • PASSWORD ='password'
    SQL Server ログインにのみ適用されます。 変更するログインのパスワードを指定します。 パスワードでは大文字と小文字が区別されます。

  • PASSWORD **=**hashed_password

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

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

    セキュリティに関する注意セキュリティに関する注意

    ログイン (または包含データベース ユーザー) が接続して認証されると、接続にはログインに関する ID 情報がキャッシュされます。Windows 認証ログインの場合、これには Windows グループのメンバーシップに関する情報も含まれます。接続が維持されている限り、ログインの ID が認証された状態は継続します。パスワードのリセットや Windows グループのメンバーシップの変更など、ID に関する変更を適用するには、認証機関 (Windows または SQL Server) からログオフしてもう一度ログインする必要があります。sysadmin 固定サーバー ロールのメンバーまたは ALTER ANY CONNECTION 権限を持つすべてのログインは、KILL コマンドを使用して接続を終了し、ログインの再接続を強制することができます。SQL Server Management Studio でオブジェクト エクスプローラーおよびクエリ エディター ウィンドウへの複数の接続を開く場合は、接続情報を再利用できます。再接続を強制するには、すべての接続を閉じます。

  • HASHED

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

    SQL Server ログインのみに適用されます。 PASSWORD 引数の後に入力されたパスワードが、ハッシュ済みであることを示します。 このオプションを選択しなかった場合、パスワードはハッシュされてからデータベースに格納されます。このオプションは、2 つのサーバー間でログインを同期する場合にのみ使用してください。 パスワードを定期的に変更する場合は HASHED オプションを使用しないでください。

  • OLD_PASSWORD ='oldpassword'
    SQL Server ログインにのみ適用されます。 新しいパスワードを割り当てるログインの、現在のパスワードを指定します。 パスワードでは大文字と小文字が区別されます。

  • MUST_CHANGE

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

    SQL Server ログインにのみ適用されます。 このオプションを指定した場合、SQL Server で変更後のログインを最初に使用するときには新しいパスワードの入力が求められます。

  • DEFAULT_DATABASE **=**database

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

    既定のデータベースをログインに割り当てます。

  • DEFAULT_LANGUAGE **=**language

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

    既定の言語をログインに割り当てます。

  • NAME = login_name
    ログインの名前を変更する場合、新しい名前を指定します。 Windows ログインの場合は、新しい名前に対応する Windows プリンシパルの SID と、SQL Server 内のログインに関連付けられている SID が一致する必要があります。 SQL Server ログインの新しい名前には、円記号 (\) は使用できません。

  • 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 です。

  • CREDENTIAL = credential_name

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

    SQL Server ログインにマップする資格情報の名前を指定します。 この資格情報はサーバー内に存在する必要があります。 詳細については、「資格情報 (データベース エンジン)」を参照してください。 資格情報を sa ログインにマップすることはできません。

  • NO CREDENTIAL

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

    ログインからサーバー資格情報へのマッピングがある場合は削除します。 詳細については、「資格情報 (データベース エンジン)」を参照してください。

  • UNLOCK

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

    SQL Server ログインにのみ適用されます。 ロックされているログインのロックを解除します。

  • ADD CREDENTIAL

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

    拡張キー管理 (EKM: Extensible Key Management) プロバイダー資格情報をログインに追加します。 詳細については、「拡張キー管理 (EKM)」を参照してください。

  • DROP CREDENTIAL

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

    ログインに対する拡張キー管理 (EKM) プロバイダー資格情報を削除します。 詳細については、「拡張キー管理 (EKM)」を参照してください。

説明

CHECK_POLICY が ON に設定されている場合、HASHED 引数は使用できません。

CHECK_POLICY を ON に変更した場合、次の動作が発生します。

  • パスワードの履歴が、現在のパスワード ハッシュの値に初期化されます。

CHECK_POLICY を OFF に変更した場合、次の動作が発生します。

  • CHECK_EXPIRATION も OFF に設定される。

  • パスワードの履歴がクリアされる。

  • lockout_time の値がリセットされる。

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

CHECK_POLICY を OFF に設定した場合、CHECK_EXPIRATION を ON に設定することはできません。 このオプションの組み合わせで ALTER LOGIN ステートメントを実行すると、ステートメントは失敗します。

ALTER_LOGIN を DISABLE 引数と共に使用して Windows グループへのアクセスを拒否することはできません。 たとえば、ALTER_LOGIN [domain\group] DISABLE を実行すると次のエラーが返されます。

"メッセージ 15151、レベル 16、状態 1、行 1"

"ログイン 'Domain\Group' を変更できません。存在しないか、権限がありません。"

これは仕様による結果です。

権限

ALTER ANY LOGIN 権限が必要です。

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

変更するログインが固定サーバー ロール sysadmin のメンバーであるか、ログインに CONTROL SERVER 権限が与えられている場合、次の変更を行うには CONTROL SERVER 権限も必要になります。

  • 以前のパスワードを指定せずにパスワードをリセットする。

  • MUST_CHANGE、CHECK_POLICY、または CHECK_EXPIRATION を有効にする。

  • ログイン名を変更する。

  • ログインを有効または無効にする。

  • ログインを別の資格情報にマップする。

プリンシパルは、所有するログインのパスワード、既定の言語、および既定のデータベースを変更できます。

使用例

A. 無効なログインを有効にする

次の例では、ログイン Mary5 を有効にします。

ALTER LOGIN Mary5 ENABLE;

B. ログインのパスワードを変更する

次の例では、ログイン Mary5 のパスワードを強力なパスワードに変更します。

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. ログインの名前を変更する

次の例では、ログイン Mary5 の名前を John2 に変更します。

ALTER LOGIN Mary5 WITH NAME = John2;

D. ログインを資格情報にマップする

次の例では、ログイン John2 を資格情報 Custodian04 にマップします。

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. ログインを拡張キー管理資格情報にマップする

次の例では、ログイン Mary5 を EKM 資格情報 EKMProvider1 にマップします。

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

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. ログインのロックを解除する

SQL Server ログインのロックを解除するには、**** を必要なアカウントのパスワードに置き換えて、次のステートメントを実行します。

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

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

パスワードを変更しないでログインのロックを解除するには、チェック ポリシーをオフにしてからもう一度オンにします。

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. HASHED を使用してログインのパスワードを変更する

次の例では、TestUser ログインのパスワードを既にハッシュされた値に変更します。

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

ALTER LOGIN TestUser WITH 
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

関連項目

参照

CREATE LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

CREATE CREDENTIAL (Transact-SQL)

EVENTDATA (Transact-SQL)

概念

資格情報 (データベース エンジン)

拡張キー管理 (EKM)