次の方法で共有


ALTER LOGIN (Transact-SQL)

更新 : 2006 年 12 月 12 日

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

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

構文

 ALTER LOGIN login_name      {      <status_option>      | WITH <set_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

引数

  • login_name
    変更する SQL Server ログインの名前を指定します。
  • ENABLE | DISABLE
    このログインを有効にするか無効にするかを指定します。
  • PASSWORD = 'password'
    SQL Server ログインにのみ適用されます。変更するログインのパスワードを指定します。パスワードでは大文字と小文字が区別されます。
  • PASSWORD **=**hashed_password
    HASHED キーワードだけに適用されます。作成するログインのパスワードのハッシュされた値を指定します。
  • HASHED
    SQL Server ログインのみに適用されます。PASSWORD 引数の後に入力されたパスワードが、ハッシュ済みであることを示します。このオプションを選択しなかった場合、パスワードはハッシュされてからデータベースに格納されます。

    ms189828.note(ja-jp,SQL.90).gifメモ :
    この引数は SQL Server 2000 以降のバージョンで作成されたハッシュに対してのみ有効です。
  • OLD_PASSWORD ='oldpassword'
    SQL Server ログインにのみ適用されます。新しいパスワードを割り当てるログインの、現在のパスワードを指定します。パスワードでは大文字と小文字が区別されます。
  • MUST_CHANGE
    SQL Server ログインにのみ適用されます。このオプションを指定した場合、SQL Server で変更後のログインを最初に使用するときには新しいパスワードの入力が求められます。
  • DEFAULT_DATABASE **=**database
    既定のデータベースをログインに割り当てます。
  • DEFAULT_LANGUAGE **=**language
    既定の言語をログインに割り当てます。
  • NAME = login_name
    ログインの名前を変更する場合、新しい名前を指定します。Windows ログインの場合は、新しい名前に対応する Windows プリンシパルの SID と、SQL Server 内のログインに関連付けられている SID が一致する必要があります。SQL Server ログインの新しい名前には、円記号 (\) は使用できません。
  • CHECK_EXPIRATION = { ON | OFF }
    SQL Server ログインにのみ適用されます。このログインに、パスワードの有効期限ポリシーを適用するかどうかを指定します。既定値は OFF です。
  • CHECK_POLICY = { ON | OFF }
    SQL Server ログインにのみ適用されます。このログインに、SQL Server を実行しているコンピュータの、Windows のパスワード ポリシーを適用するかどうかを指定します。既定値は ON です。
  • CREDENTIAL = credential_name
    SQL Server ログインにマップする資格情報の名前を指定します。この資格情報はサーバー内に存在する必要があります。詳細については、「資格情報」を参照してください。
  • NO CREDENTIAL
    ログインからサーバー資格情報へのマッピングがある場合は削除します。詳細については、「資格情報」を参照してください。
  • UNLOCK
    SQL Server ログインにのみ適用されます。ロックされているログインのロックを解除します。

解説

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

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

  • CHECK_EXPIRATION が明示的に OFF に設定されていない場合は、このオプションも 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 ステートメントを実行すると、ステートメントは失敗します。

ms189828.note(ja-jp,SQL.90).gif重要 :
CHECK_EXPIRATION および CHECK_POLICY は、 以降でのみ適用されます。詳細については、「パスワード ポリシー」を参照してください。
ms189828.note(ja-jp,SQL.90).gif重要 :
の既知の問題により、アカウント ロックアウトのしきい値に達しても無効なパスワード数がリセットされない場合があります。以降のログインの試行が失敗すると直ちにロックアウトが発生する可能性があります。無効なパスワード数を手動でリセットするには、CHECK_POLICY = OFF に設定した直後に、CHECK_POLICY = ON に設定します。アカウント ロックアウトのしきい値の詳細については、サポート技術情報の記事 818078「ユーザー アカウントが早くロックアウトされる」を参照してください。

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

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

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

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

権限

ALTER ANY LOGIN 権限が必要です。

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

変更するログインに 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 の名前を Joe2 に変更します。

ALTER LOGIN Mary5 WITH NAME = Joe2;

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

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

ALTER LOGIN Joe2 WITH CREDENTIAL = Custodian04;

参照

関連項目

CREATE LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
EVENTDATA (Transact-SQL)

その他の技術情報

資格情報

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

追加内容 :
  • HASHED 引数に関する情報を追加しました。
  • DISABLE 引数を使用して Windows グループへのアクセスを禁止することについての情報を追加しました。