QuestDB是否支持按数据表粒度设置差异化用户操作权限?
你需要的表级、按操作类型划分的精细化权限管控能力,在QuestDB 6.0及以上版本中已经原生支持,完全可以覆盖你描述的场景,具体实现方式如下:
1. 首先创建目标用户
执行以下SQL语句创建三个对应用户,替换语句中的密码为实际值即可:
CREATE USER user1 WITH PASSWORD 'your_password_here'; CREATE USER user2 WITH PASSWORD 'your_password_here'; CREATE USER user3 WITH PASSWORD 'your_password_here';
2. 按需求分配权限
- 给
user1分配表a、b、c的读权限(对应SELECT操作):GRANT SELECT ON TABLE a, b, c TO user1; - 给
user2分配表b的读写权限(读对应SELECT,写对应INSERT操作,如有修改、删除需求可追加UPDATE、DELETE权限)、表c的读权限:GRANT SELECT, INSERT ON TABLE b TO user2; GRANT SELECT ON TABLE c TO user2; - 给
user3分配所有表的完全管理员权限,直接授予超级用户权限即可:GRANT SUPERUSER TO user3;
补充说明
如果需要批量管理多用户的同类权限,可以先创建自定义角色、给角色分配权限后,再将角色赋予对应用户,效率更高。如果需要回收权限,使用REVOKE语句即可,示例如下:
-- 回收user2对表c的读权限 REVOKE SELECT ON TABLE c FROM user2;
内容的提问来源于stack exchange,提问作者BurningFlan
相关产品推荐
相关产品推荐

