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句を追加すると、システムはWarningメッセージを表示します。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句を追加すると、システムはWarningメッセージを表示します。IF EXISTS句を追加するかどうかにかかわらず、employeeまたはdeveloperロールのいずれか一方が存在しない場合、ロールの剥奪操作は失敗します。
ロールからのロールの剥奪
role1ロールからemployeeロールを剥奪するobclient [oceanbase]> REVOKE employee FROM role1;role1およびrole2ロールからemployeeロールを剥奪するobclient [oceanbase]> REVOKE IF EXISTS employee FROM role1,role2;