github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/zz_accesscontrol/revoke_privs_role.sql (about) 1 --env prepare statement 2 drop database if exists revoke_db_01; 3 drop role if exists revoke_role_1,revoke_role_2,revoke_role_3,revoke_role_4,revoke_role_5,revoke_role_6,revoke_role_7,revoke_role_8; 4 drop user if exists revoke_user_1,revoke_user_2,revoke_user_3,revoke_user_4,revoke_user_5,revoke_user_6,revoke_user_7; 5 create role if not exists revoke_role_1,revoke_role_2,revoke_role_3,revoke_role_4,revoke_role_5,revoke_role_6,revoke_role_7,revoke_role_8; 6 create user if not exists revoke_user_1 identified by '12345678',revoke_user_2 identified by '12345678',revoke_user_3 identified by '12345678',revoke_user_4 identified by '12345678',revoke_user_5 identified by '12345678',revoke_user_6 identified by '12345678',revoke_user_7 identified by '12345678'; 7 create database revoke_db_01; 8 9 --revoke多个权限from一个role,覆盖部分/全部,异常情况:无该权限,role不存在 10 grant create user, drop user, alter user, create role, drop role, create database,drop database on account * to revoke_role_1 with grant option; 11 grant revoke_role_1 to revoke_user_1; 12 revoke create user, drop user, alter user on account * from revoke_role_1; 13 select role_name, privilege_name, privilege_level from mo_catalog.mo_role_privs where role_name='revoke_role_1'; 14 -- @session:id=2&user=sys:revoke_user_1:revoke_role_1&password=12345678 15 create user re_test_user identified by '12345678'; 16 drop user re_test_user; 17 create role revoke_role_9; 18 drop role revoke_role_9; 19 -- @session 20 revoke all on account * from revoke_role_3; 21 revoke create user, drop user, show tables on account * from revoke_role_1; 22 revoke create user, drop user, show tables on table *.* from revoke_role_1; 23 revoke create user, drop user on account * from re_not_exists; 24 revoke all on account * from revoke_role_1; 25 26 --revoke多个权限from多个role,覆盖回收部分/全部,异常情况:无该权限,role不存在,if exists 27 grant create table,drop table,alter table on database *.* to revoke_role_2,revoke_role_3 with grant option; 28 grant all on account * to revoke_role_2; 29 grant revoke_role_2 to revoke_user_2; 30 grant revoke_role_3 to revoke_user_3; 31 revoke drop table,create table on database *.* from revoke_role_2,revoke_role_3; 32 select role_name, privilege_name, privilege_level from mo_catalog.mo_role_privs where role_name in ('revoke_role_2','revoke_role_3'); 33 -- @session:id=2&user=sys:revoke_user_2:revoke_role_2&password=12345678 34 create table revoke_db_01.revoke_table_1(a int,b varchar(20),c double); 35 drop table revoke_db_01.revoke_table_1; 36 create database revoke_db_02; 37 drop database revoke_db_02; 38 -- @session 39 -- @session:id=2&user=sys:revoke_user_3:revoke_role_3&password=12345678 40 create table revoke_db_01.revoke_table_1(a int,b varchar(20),c double); 41 drop table revoke_db_01.revoke_table_1; 42 -- @session 43 revoke create table,select,insert on database * from revoke_role_2,revoke_role_3; 44 revoke if exists create table,select,insert on database * from revoke_role_2,revoke_role_3; 45 revoke all on account * from revoke_role_2,revoke_role_3; 46 revoke if exists all on account * from revoke_role_2,revoke_role_3; 47 48 --revoke一个权限from多个role 49 grant all on table *.* to revoke_role_4,revoke_role_5 with grant option; 50 grant create table,drop table,alter table on database *.* to revoke_role_5; 51 grant revoke_role_4 to revoke_user_4 with grant option; 52 grant revoke_role_5 to revoke_user_5; 53 revoke all on table *.* from revoke_role_4,revoke_role_5; 54 select role_name, privilege_name, privilege_level from mo_catalog.mo_role_privs where role_name in ('revoke_role_4','revoke_role_5'); 55 -- @session:id=2&user=sys:revoke_user_4:revoke_role_4&password=12345678 56 select * from mo_catalog.mo_user; 57 -- @session 58 -- @session:id=2&user=sys:revoke_user_5:revoke_role_5&password=12345678 59 select * from mo_catalog.mo_user; 60 create table revoke_db_01.revoke_table_2(a int,b varchar(20),c double); 61 drop table revoke_db_01.revoke_table_2; 62 -- @session 63 64 --revoke ownership 65 grant ownership on database revoke_db_01 to revoke_role_6; 66 grant all on table *.* to revoke_role_6; 67 grant revoke_role_6 to revoke_user_6; 68 revoke ownership on database revoke_db_01 from revoke_role_6; 69 -- @session:id=2&user=sys:revoke_user_6:revoke_role_6&password=12345678 70 create table revoke_test_table_1(a int); 71 drop table revoke_test_table_1; 72 grant ownership on database revoke_db_01 to revoke_role_7; 73 select * from revoke_db_01.revoke_table_1; 74 -- @session 75 76 drop database if exists revoke_db_01; 77 drop role if exists revoke_role_1,revoke_role_2,revoke_role_3,revoke_role_4,revoke_role_5,revoke_role_6,revoke_role_7,revoke_role_8; 78 drop user if exists revoke_user_1,revoke_user_2,revoke_user_3,revoke_user_4,revoke_user_5,revoke_user_6,revoke_user_7;