説明
このステートメントは主に以下の操作を実行するために使用されます:
データベースユーザーのパスワードを変更します。
データベースユーザーが使用するプロファイルを変更します。
データベースユーザー接続の暗号化方式を変更します。その他のユーザーパスワード変更方法については、SET PASSWORDを参照してください。
パスワードローテーションシナリオでローテーション期間を早期終了します。
データベースユーザーが保有するロールのデフォルトロールを変更します。
権限要件
現在のユーザーが実行できる変更コマンドに加えて、他のユーザーがこのコマンドを使用して他のユーザーの情報を変更するには、ALTER USER権限が必要です。OceanBaseデータベースの権限の詳細については、Oracleモードの権限分類を参照してください。
使用上の制限
プロキシユーザーがターゲットユーザーに代わってデータベースに接続する場合、現在はOBClientを介したデータベース接続のみをサポートしており、OBClientのバージョンはV2.2.6以降である必要があります。JavaドライバーとCドライバーによるデータベース接続は現在サポートされていません。
構文
ALTER USER user_name
{ IDENTIFIED BY password
| IDENTIFIED WITH auth_plugin [BY password]
| EXPIRE PASSWORD ROLLOVER PERIOD
| PROFILE {"profile_name" | DEFAULT}
| REQUIRE {NONE | SSL | x509 | tls_option_list}
| DEFAULT ROLE
{ role_name[,role_name...]
| ALL [EXCEPT role_name[,role_name...]]
| NONE
}
| GRANT CONNECT THROUGH proxy_user_name [with_clause]
};
tls_option_list:
tls_option
| tls_option_list tls_option
tls_option:
CIPHER str_value
| ISSUER str_value
| SUBJECT str_value
with_clause:
WITH ROLE {role_name[, role_name,...]}
| WITH NO ROLE
| WITH ROLE ALL EXCEPT {role_name[, role_name,...]}
パラメータの説明
パラメータ |
説明 |
|---|---|
| user_name | ユーザー名またはプロキシ対象のターゲットユーザー名を指定します。 |
| IDENTIFIED BY | ユーザーの新しいパスワードを指定します。 |
| IDENTIFIED WITH | 認証プラグインと対応する認証情報を指定します。サポートされている認証プラグインはcaching_sha2_password(SHA-256ベースのパスワード認証プラグイン)です。BY password:平文パスワードを指定します。
説明
|
| EXPIRE PASSWORD ROLLOVER PERIOD | パスワードローテーションシナリオでローテーション期間を早期終了し、古いパスワードを即座に無効にして、現在のパスワードのみを保持します。
説明このパラメータはV4.4.2 BP1バージョンからサポートされています。 |
| PROFILE | ユーザーが使用するプロファイルを指定します。
|
| REQUIRE | ユーザーが使用する暗号化プロトコルをNONE、SSL、X509、tls_option_listのいずれか一つを指定します。 |
| DEFAULT ROLE | ユーザーのログイン時のデフォルトロールを指定します。
|
| GRANT CONNECT THROUGH | プロキシユーザーの使用を指定します。プロキシユーザーの使用例については、プロキシユーザーの使用を参照してください。 |
| proxy_user_name | プロキシユーザー名。権限付与後、このユーザーはターゲットユーザーに代わってデータベースに接続し、ターゲットユーザーのロール権限を使用してデータベース操作を実行できます。 |
| with_clause | プロキシユーザーがターゲットユーザーに代わってデータベースに接続する際に有効なロール権限を指定します。この句を指定しない場合、プロキシユーザーがターゲットユーザーに代わってデータベースに接続するとき、ターゲットユーザーのすべてのロール権限がデフォルトで有効になります。詳細については、以下の with_clause を参照してください。 |
with_clause
注意
プロキシユーザーの有効なロール権限を指定する場合、パスワード付きのロール権限については、データベースに接続した後、SET ROLE role_name IDENTIFIED BY role_password; コマンドで手動でそのロールを有効化する必要があります。
WITH ROLE {role_name[, role_name,...]}:プロキシユーザーがターゲットユーザーに代わってデータベースに接続する際、指定されたロール権限を自動的に取得し、有効にします。つまり、ターゲットユーザーで指定されたロール権限のみが有効になります。WITH NO ROLE:プロキシユーザーがターゲットユーザーに代わってデータベースに接続する際、ターゲットユーザーのいかなるロール権限も自動的に取得しません。つまり、ターゲットユーザーのすべてのロール権限は無効になります。WITH ROLE ALL EXCEPT {role_name[ ,role_name,...]}:プロキシユーザーがターゲットユーザーに代わってデータベースに接続する際、ターゲットユーザーで指定されたロールを除く他のすべてのロール権限を自動的に取得し、有効にします。
例
ユーザー
user1のパスワードを変更します。obclient> ALTER USER user1 IDENTIFIED BY ******; Query OK, 0 rows affectedユーザー
user1の認証プラグインをcaching_sha2_passwordに変更します。obclient> ALTER USER user1 IDENTIFIED WITH caching_sha2_password BY ******; Query OK, 0 rows affectedユーザー
user1の接続暗号化プロトコルをSSLに変更します。obclient> ALTER USER user1 REQUIRE SSL; Query OK, 0 rows affectedユーザー
user1が使用する Profile をprofile1に変更します。obclient> ALTER USER user1 PROFILE "profile1"; Query OK, 0 rows affectedパスワードローテーションのシナリオで、ユーザー
user1のローテーション期間を早期に終了します。obclient> ALTER USER user1 EXPIRE PASSWORD ROLLOVER PERIOD; Query OK, 0 rows affectedユーザー
user1のデフォルトロールを設定します。obclient> CREATE ROLE role1; Query OK, 0 rows affected obclient> CREATE ROLE role2 IDENTIFIED BY ******; Query OK, 0 rows affected obclient> CREATE ROLE role3 IDENTIFIED BY ******; Query OK, 0 rows affected obclient> GRANT role1,role2,role3 TO user1; Query OK, 0 rows affected obclient> ALTER USER user1 DEFAULT ROLE role1; Query OK, 0 rows affected説明
ユーザー
user1はrole1の権限を直接使用できます。role2とrole3の権限は、ユーザーuser1がセッション内でrole2とrole3を有効にした後でないと使用できません。ロールを有効にするコマンドの詳細については、SET ROLEを参照してください。