説明
このステートメントは、主に以下の操作を実行するために使用されます:
OceanBaseデータベースユーザーのパスワードを変更します。
ユーザーをロックまたはアンロックします。ロックされたユーザーはデータベースへのログインが許可されません。
説明
現在のユーザーパスワードを変更する場合を除き、このコマンドを実行するには
CREATE USER権限が必要です。ユーザーがログイン時にデフォルトで有効にするロールを設定します。
ユーザーのリソースオプションを変更します。
使用上の制限と注意事項
SET PASSWORD/ALTER USERによるパスワード変更後、古いパスワードの高速認証キャッシュは無効となり、古いパスワードではログインできなくなります。- 認証文字列の形式検証:
IDENTIFIED AS/BY PASSWORDは$S$形式を検証し、$A$(sha2)などの誤った形式を拒否します。 - 標準のMySQL Connectorは、
caching_sha2_password認証プラグインを使用するユーザーとして接続できます。 ob_sm3_passwordはOceanBase独自の認証プラグインであり、標準のMySQL Connectorや対応していないODPでは、この認証プラグインを使用するユーザーへの接続ができない場合があります。
権限要件
ALTER USER ステートメントを実行するには、現在のユーザーが CREATE USER 管理権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、MySQLモードの権限分類を参照してください。
構文
ユーザーパスワードの変更:
ALTER USER 'user_name' IDENTIFIED [WITH auth_plugin] BY 'password' | IDENTIFIED [WITH auth_plugin] AS 'auth_string' auth_plugin: mysql_native_password | caching_sha2_password | ob_sm3_passwordユーザーパスワードの変更と現在のパスワードの保持(デュアルパスワードシナリオ、V4.4.2 BP1以降):
ALTER USER 'user_name' IDENTIFIED BY 'password' RETAIN CURRENT PASSWORD;保持された古いパスワードの破棄(V4.4.2 BP1以降):
ALTER USER 'user_name' DISCARD OLD PASSWORD;ユーザーのロック:
ALTER USER 'user_name' [ACCOUNT LOCK | ACCOUNT UNLOCK];ユーザーがログイン時にデフォルトで有効にするロールを設定します:
ALTER USER user_name DEFAULT ROLE {NONE | ALL | role_name [, role_name ...]};ユーザーのリソースオプションを変更します:
ALTER USER user_name WITH resource_option [resource_option]; resource_option: MAX_CONNECTIONS_PER_HOUR integer | MAX_USER_CONNECTIONS integer
パラメータ説明
パラメータ |
説明 |
|---|---|
| user_name | ユーザー名を指定します。 |
| auth_plugin | ユーザー認証方式(認証プラグイン)を指定するために使用されます。詳細については、以下の auth_plugin を参照してください。 |
| password | 新しいパスワードを指定します。 |
| IDENTIFIED WITH auth_plugin AS 'auth_string' | アカウント認証プラグインを auth_plugin に設定し、auth_string の値を mysql.user テーブルに格納します。プラグインがハッシュ文字列を必要とする場合、その文字列が既にプラグインが必要とするハッシュ形式であると仮定します。
注意
|
| ACCOUNT LOCK | ユーザーのロックを指定します。 |
| ACCOUNT UNLOCK | ユーザーのアンロックを指定します。 |
| NONE | ユーザーが付与されたすべてのロールを無効にすることを指定します。 |
| ALL | ユーザーのすべてのロールを有効にすることを指定します。 |
| role_name | ロール名を指定します。複数のロールを有効にする場合は、ロール名を半角カンマ(,)で区切ります。 |
| resource_option | ユーザーのリソースオプションを指定します。複数のリソースオプションを指定する場合は、半角スペースで区切ります。
|
| RETAIN CURRENT PASSWORD | IDENTIFIED BY と組み合わせて使用します:新しいパスワードを設定しながら古いパスワードを保持し、デュアルパスワード状態にします。
説明この機能はV4.4.2 BP1バージョンからサポートされています。 |
| DISCARD OLD PASSWORD | 保持されていた古いパスワードを破棄し、現在のパスワードのみを保持します。
説明この機能はV4.4.2 BP1バージョンからサポートされています。 |
auth_plugin
mysql_native_password:従来のパスワード認証プラグインで、SHA-1ハッシュアルゴリズムを使用します。caching_sha2_password:SHA-256に基づくパスワード認証プラグインで、より高いセキュリティレベルを提供します。説明
V4.4.2バージョンでは、V4.4.2 BP2バージョンから認証プラグイン
caching_sha2_passwordがサポートされています。ob_sm3_password:このプラグインは、認証プロトコルとステートマシンをcaching_sha2_passwordと完全に共有します(AuthSwitch、高速認証/完全認証、TLS/RSAによるパスワードの暗号化送信)。ただし、アルゴリズムとメタデータは独立しており、パスワードの保存と認証検証にはSHA-256の代わりにSM3ハッシュアルゴリズムを使用します。説明
V4.4.2バージョンでは、V4.4.2 BP3バージョンから認証プラグイン
ob_sm3_passwordがサポートされています。
例
以下のコマンドを実行して、ユーザー
sqluser01のパスワードを******に変更します。obclient> ALTER USER 'sqluser01' IDENTIFIED BY '******';ユーザー
sqluser01のパスワードをNewSecretに変更し、パスワード変更前の古いパスワードを保持します(デュアルパスワード)。obclient> ALTER USER 'sqluser01'@'%' IDENTIFIED BY 'NewSecret' RETAIN CURRENT PASSWORD;ビジネス切り替え完了後、古いパスワードを破棄します。
obclient> ALTER USER 'sqluser01'@'%' DISCARD OLD PASSWORD;mysql_native_password認証プラグインの使用を指定します。
ALTER USER 'sqluser01' IDENTIFIED WITH mysql_native_password AS '******';caching_sha2_password認証プラグインの使用を指定します。
ALTER USER 'sqluser02' IDENTIFIED WITH caching_sha2_password BY '******';ユーザー
obsqluser01をロックします。obclient> ALTER USER 'obsqluser01' ACCOUNT LOCK;ユーザー
obsqluser01のロックを解除します。obclient> ALTER USER 'obsqluser01' ACCOUNT UNLOCK;ユーザー
user001がログインする際、デフォルトでユーザーに付与されたrole001およびrole002ロールを有効にします。ALTER USER user001 DEFAULT ROLE role001, role002;シリアライズされた認証文字列(
$S$...)を直接書き込みます。obclient> ALTER USER user001 IDENTIFIED WITH ob_sm3_password AS '$S$005$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.';