説明
このステートメントは主に以下の操作を実行するために使用されます:
データベースユーザーのパスワードを変更します。
データベースユーザーが使用するプロファイルを変更します。
データベースユーザー接続の暗号化方式を変更します。その他のユーザーのパスワード変更方法については、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を有効にした後にのみ、ユーザーuser1がその権限を使用できます。ロールを有効にするコマンドの詳細については、SET ROLEを参照してください。