system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -i 1 system sh/exec.sh -n dnode1 -s start sql connect print =============== create db sql create database root_d1 vgroups 1; sql create database root_d2 vgroups 1; sql create database root_d3 vgroups 1; sql show user privileges if $rows != 1 then return -1 endi if $data(root)[1] != all then return -1 endi if $data(root)[2] != all then return -1 endi print =============== create users sql create user user1 PASS 'taosdata' sql create user user2 PASS 'taosdata' sql create user user3 PASS 'taosdata' sql create user user4 PASS 'taosdata' sql create user user5 PASS 'taosdata' sql create user user6 PASS 'taosdata' sql alter user user1 sysinfo 0 sql select * from information_schema.ins_users if $rows != 7 then return -1 endi sql GRANT read ON root_d1.* to user1; sql GRANT write ON root_d2.* to user2; sql GRANT read ON root_d3.* to user3; sql GRANT write ON root_d3.* to user3; sql show user privileges if $rows != 5 then return -1 endi if $data(user1)[1] != read then return -1 endi if $data(user1)[2] != root_d1 then return -1 endi if $data(user2)[1] != write then return -1 endi if $data(user2)[2] != root_d2 then return -1 endi print =============== create topis sql use root_d1 sql create table root_d1_stb (ts timestamp, i int) tags (j int) sql create topic root_d1_topic1 as select ts, i from root_d1_stb sql create topic root_d1_topic2 as select ts, i from root_d1_stb sql create topic root_d1_topic3 as select ts, i from root_d1_stb sql create topic root_d1_topic4 as select ts, i from root_d1_stb sql show user privileges if $rows != 5 then return -1 endi sql GRANT subscribe ON root_d1_topic1 TO user4 sql GRANT subscribe ON root_d1_topic2 TO user5 sql GRANT subscribe ON root_d1_topic3 TO user6 sql show user privileges if $rows != 8 then return -1 endi if $data(user4)[1] != subscribe then return -1 endi if $data(user4)[2] != root_d1_topic1 then return -1 endi if $data(user5)[1] != subscribe then return -1 endi if $data(user5)[2] != root_d1_topic2 then return -1 endi if $data(user6)[1] != subscribe then return -1 endi if $data(user6)[2] != root_d1_topic3 then return -1 endi sql REVOKE subscribe ON root_d1_topic3 from user6 sql show user privileges if $rows != 7 then return -1 endi if $data(user4)[1] != subscribe then return -1 endi if $data(user4)[2] != root_d1_topic1 then return -1 endi if $data(user5)[1] != subscribe then return -1 endi if $data(user5)[2] != root_d1_topic2 then return -1 endi print =============== repeat revoke/grant or invalid revoke/grant sql GRANT subscribe ON root_d1_topic1 to user4 sql GRANT subscribe ON root_d1_topic2 to user4 sql GRANT subscribe ON root_d1_topic3 to user4 sql GRANT subscribe ON root_d1_topic1 to user5 sql GRANT subscribe ON root_d1_topic2 to user5 sql GRANT subscribe ON root_d1_topic3 to user5 sql GRANT subscribe ON root_d1_topic1 to user6 sql GRANT subscribe ON root_d1_topic2 to user6 sql GRANT subscribe ON root_d1_topic3 to user6 sql REVOKE subscribe ON root_d1_topic1 from user4 sql REVOKE subscribe ON root_d1_topic2 from user4 sql REVOKE subscribe ON root_d1_topic3 from user4 sql REVOKE subscribe ON root_d1_topic1 from user5 sql REVOKE subscribe ON root_d1_topic2 from user5 sql REVOKE subscribe ON root_d1_topic3 from user5 sql REVOKE subscribe ON root_d1_topic1 from user6 sql REVOKE subscribe ON root_d1_topic2 from user6 sql REVOKE subscribe ON root_d1_topic3 from user6 print =============== invalid revoke/grant sql_error GRANT subscribe ON root_d1_topicx from user5 sql_error REVOKE subscribe ON root_d1_topicx from user5 print =============== check sql GRANT subscribe ON root_d1_topic1 TO user4 sql GRANT subscribe ON root_d1_topic2 TO user5 sql GRANT subscribe ON root_d1_topic3 TO user6 sql show user privileges if $rows != 8 then return -1 endi print =============== re connect print user u1 login sql close sql connect user1 sql_error show user privileges system sh/exec.sh -n dnode1 -s stop -x SIGINT