説明
このステートメントは主に以下の操作を実行するために使用されます:
データベースユーザーのパスワードを変更します。
データベースユーザーが使用するプロファイルを変更します。
データベースユーザー接続の暗号化方式を変更します。その他のユーザーパスワード変更方法については、SET PASSWORDを参照してください。
データベースユーザーが保有するロールのデフォルトロールを変更します。
権限要件
現在のユーザーが実行できる変更コマンド以外に、他のユーザーがこのコマンドを使用して他のユーザーの情報を変更するには、ALTER USER権限が必要です。OceanBaseデータベースの権限の詳細については、Oracleモードの権限分類を参照してください。
使用制限
プロキシユーザーがターゲットユーザーに代わってデータベースに接続する場合、現在はOBClientを介したデータベース接続のみをサポートしており、OBClientのバージョンはV2.2.6以降である必要があります。JavaドライバーとCドライバーによるデータベース接続は現在サポートされていません。
構文
ALTER USER user_name
{ IDENTIFIED BY password
| 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 | ユーザーの新しいパスワードを指定します。 |
| 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の接続暗号化プロトコルを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> 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を参照してください。