REVOKE ステートメントを使用して、ユーザーまたは他のロールからロールを剥奪できます。
現在、1つのロールを複数のユーザーまたはロールから剥奪すること、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;