REVOKE ステートメントを使用して、ユーザーまたは他のロールからロールを取り消すことができます。
現在、1つのロールを複数のユーザーまたはロールから取り消したり、1つのユーザーまたはロールから複数のロールを取り消したり、複数のユーザーまたはロールから複数のロールを取り消したりすることがサポートされています。
前提条件
ロールを取り消すには、現在のユーザーが取り消す対象のロールを所有している必要があり、かつ ADMIN OPTION 権限を持っている必要があります。現在のユーザーまたはロールが所有するロールの詳細な操作については、ロールの表示を参照してください。
注意事項
REVOKE ステートメントを実行してユーザーからロールを取り消す場合、現在ログインしているユーザーには即時反映されません。
操作例
ユーザーからのロールの取り消し
ユーザー
test1からemployeeロールを取り消すobclient [oceanbase]> REVOKE employee FROM test1;ユーザー
test1およびtest2からemployeeロールを取り消すobclient [oceanbase]> REVOKE employee FROM test1,test2 IGNORE UNKNOWN USER;この例では、
IGNORE UNKNOWN USER句は取り消す対象のロールを所有するユーザーが存在するかどうかを確認するために使用されます。IGNORE UNKNOWN USER句を追加しない場合、test1とtest2のユーザーのいずれか一方が存在しない場合、システムはエラーを報告します。IGNORE UNKNOWN USER句を追加すると、システムは警告メッセージを表示します。IGNORE UNKNOWN USER句を追加するかどうかにかかわらず、test1とtest2のユーザーのいずれか一方が存在しない場合、ロールの取り消し操作は失敗します。ユーザー
test1からemployeeおよびdeveloperロールを取り消すobclient [oceanbase]> REVOKE IF EXISTS employee,developer FROM test1 IGNORE UNKNOWN USER;この例では、
IF EXISTS句は取り消す対象のロールがテナント内に存在するかどうかを確認するために使用されます。IF EXISTS句を追加しない場合、employeeおよびdeveloperロールのいずれか一方が存在しない場合、システムはエラーを報告します。IF NOT EXISTS句を追加すると、システムは警告メッセージを表示します。IF EXISTS句を追加するかどうかにかかわらず、employeeおよびdeveloperロールのいずれか一方が存在しない場合、ロールの取り消し操作は失敗します。
ロールからのロールの取り消し
role1ロールからemployeeロールを取り消すobclient [oceanbase]> REVOKE employee FROM role1;role1およびrole2ロールからemployeeロールを取り消すobclient [oceanbase]> REVOKE IF EXISTS employee FROM role1,role2;