github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/zz_accesscontrol/create_role.sql (about) 1 --env prepare statement 2 drop role if exists newrole, role_1234,12role,`role@hhhh123`,`role.123`,_newrole,role222; 3 drop role if exists role1,role2,role3,role4,role5,role6,role_7,user_role,u_role; 4 drop role if exists role_1,role_2,role_3,role_4,role_5,role_6,role_7,'中文','12345','default';; 5 drop role if exists `abcddddddfsfafaffsefsfsefljofiseosfjosisssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss24444444444444444444444444222222222@fffffffffffffffffffffffffffffffffffffffffffffffffffff`; 6 drop user if exists role_user,user_role; 7 drop role if exists role_role1,role_role2,role_role3,role_role4,role_role5,role_role6,role_role7,role_role8,u_role; 8 drop database if exists p_db; 9 --1.rolename支持字符,数字,特殊字符混合,中文,大小写不敏感,覆盖"",'',``,及去除头尾空格 10 create role newrole, role_1234,12role,`role@hhhh123`,`role.123`,_newrole,RoLe222; 11 create role NewRole; 12 select role_name from mo_catalog.mo_role where role_name in ('newrole', 'role_1234','12role','role@hhhh123','role.123','_newrole','role222'); 13 create role "role_1",'role_2',`role_3`; 14 select role_name from mo_catalog.mo_role where role_name in ('role_1','role_2','role_3'); 15 create role " role_4 ",' role_5 ',` role_6 `; 16 select role_name from mo_catalog.mo_role where role_name in ('role_4','role_5','role_6'); 17 create role '中文','12345'; 18 select role_name from mo_catalog.mo_role where role_name in ('中文','12345'); 19 create role 'abcddddddfsfafaffsefsfsefljofiseosfjosisssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss24444444444444444444444444222222222@fffffffffffffffffffffffffffffffffffffffffffffffffffff'; 20 select role_name from mo_catalog.mo_role where role_name in ('abcddddddfsfafaffsefsfsefljofiseosfjosisssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss24444444444444444444444444222222222@fffffffffffffffffffffffffffffffffffffffffffffffffffff'); 21 create role 'default'; 22 select role_name from mo_catalog.mo_role where role_name in ('default'); 23 24 --2.异常测试:语法错误,rolename包含冒号,关键字,rolename和rolename同名,rolename为空 25 create if not exists role select; 26 create role a b c; 27 create role 'test:abc'; 28 create role "test:abc"; 29 create role `test:abc`; 30 create role default; 31 create user user_role identified by '12345678'; 32 create role user_role; 33 create role ''; 34 35 --3.rolename已存在/不存在,包含初始化moadmin,public,if not exits存在/不存在 36 create role moadmin,public; 37 create role if not exists moadmin,public; 38 select role_name from mo_catalog.mo_role where role_name in ('moadmin','public'); 39 create role if not exists role_7; 40 select role_name from mo_catalog.mo_role where role_name = 'role_7'; 41 42 --4.一次性创建多个role都不存在,部分存在,全部存在,名字非法,管理员角色,if not exits 43 use mo_catalog; 44 create role if not exists role_role1,role_role2,role_role3,role_role4,role_role5,role_role6; 45 select role_name from mo_role where role_name like 'role_role%' order by role_name; 46 create role role_role1,role_role2,role_role3,role_role7,role_role8; 47 create role if not exists role_role1,role_role2,role_role3,role_role7,role_role8; 48 select role_name from mo_role where role_name like 'role_role%' order by role_name; 49 create role role_role9,role_role:10,role_role11; 50 select role_name from mo_role where role_name like 'role_role%' order by role_name; 51 52 --6.覆盖CREATE-grant-DROP-CREATE,CREATE-grant-grant场景 53 create role if not exists role2; 54 create user role_user identified by '111111'; 55 grant insert,select on table *.* to role2; 56 use mo_catalog; 57 select role_name,obj_type,privilege_name,privilege_level from mo_role_privs where role_name='role2'; 58 grant role2 to role_user; 59 select user_name,role_name,obj_type,privilege_name,privilege_level from mo_user_grant,mo_user,mo_role_privs where mo_user_grant.user_id=mo_user.user_id and mo_role_privs.role_id=mo_user_grant.role_id and role_name='role2'; 60 drop role role2; 61 select count(*) from mo_role_privs where role_name='role2'; 62 select count(*) from mo_user_grant,mo_user,mo_role_privs where mo_user_grant.user_id=mo_user.user_id and mo_role_privs.role_id=mo_user_grant.role_id and role_name='role2'; 63 create role role2; 64 grant insert,select on table *.* to role2; 65 select role_name,obj_type,privilege_name,privilege_level from mo_role_privs where role_name='role2'; 66 create role if not exists role3; 67 grant create database on account * to role3; 68 select role_name,obj_type,privilege_name,privilege_level from mo_role_privs where role_name='role3'; 69 grant role3 to role_user; 70 grant ownership on table *.* to role3; 71 grant role3 to role_user; 72 select user_name,role_name,obj_type,privilege_name,privilege_level from mo_user_grant,mo_user,mo_role_privs where mo_user_grant.user_id=mo_user.user_id and mo_role_privs.role_id=mo_user_grant.role_id and role_name='role3'; 73 74 --prepare,set,execute权限验证 75 drop user if exists user_prepare_01; 76 drop role if exists role_prepare_1; 77 create user user_prepare_01 identified by '123456'; 78 create role role_prepare_1; 79 create database if not exists p_db; 80 grant create table ,drop table on database *.* to role_prepare_1; 81 grant connect on account * to role_prepare_1; 82 grant insert,select on table *.* to role_prepare_1; 83 grant role_prepare_1 to user_prepare_01; 84 -- @session:id=17&user=sys:user_prepare_01:role_prepare_1&password=123456 85 use p_db; 86 prepare stmtt from 'drop table if exists grant_table_30'; 87 execute stmtt; 88 prepare stmt from 'create table grant_table_30(a int)'; 89 execute stmt; 90 prepare stmt1 from 'insert into grant_table_30 values(?)'; 91 set @a=55; 92 execute stmt1 using @a; 93 prepare stmt2 from 'select * from grant_table_30'; 94 execute stmt2; 95 prepare stmt2 from 'update grant_table_30 set a=60'; 96 execute stmt2; 97 prepare stmt2 from 'insert into grant_table_30 select 89'; 98 execute stmt2; 99 prepare stmt3 from 'insert into grant_table_30 select * from grant_table_30'; 100 execute stmt3; 101 prepare stmt4 from 'show databases'; 102 execute stmt4; 103 prepare stmt5 from 'select "abc"'; 104 execute stmt5; 105 -- @session 106 107 drop role if exists newrole, role_1234,12role,`role@hhhh123`,`role.123`,_newrole,role222; 108 drop role if exists role1,role2,role3,role4,role5,role6,role_7,user_role,u_role; 109 drop role if exists role_1,role_2,role_3,role_4,role_5,role_6,role_7,'中文','12345','default';; 110 drop role if exists `abcddddddfsfafaffsefsfsefljofiseosfjosisssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss24444444444444444444444444222222222@fffffffffffffffffffffffffffffffffffffffffffffffffffff`; 111 drop user if exists role_user,user_role; 112 drop role if exists role_role1,role_role2,role_role3,role_role4,role_role5,role_role6,role_role7,role_role8,u_role; 113 drop database if exists p_db;