acelyc111 commented on issue #1054:
URL: 
https://github.com/apache/incubator-pegasus/issues/1054#issuecomment-1214917808

   1. 需更严格的普通查看类请求:
     a. 如上表格,“Global级别权限”的“metadata”权限也需要ACL
   2. meta server上增加表级的ACL:
     a. 如获取表的路由信息(RPC_CM_QUERY_PARTITION_CONFIG_BY_INDEX),也需做ACL
   3. 为支持database(前缀)粒度的控制:
     **a. meta server上的:**
     i. 针对如上列表中的“Database级别权限”的在metaserver上处理的请求
     ii. 需增加unordered_map<表前缀, unordered_set<用户名>>的结构
     iii. 在各个请求响应函数中,解析到请求的”表名“之后加以判断
     **replica server上的:**
     i. 需增加与meta server上相似的数据结构(unordered_map<表前缀, unordered_set<用户名>>)
     ii. 因为”表前缀”并不属于任何表,所以除了表级的envs外,还需增加server级的envs,用于鉴权
     iii. 因为在replica server上并不维护“表名”,而只有“表id”,所以还需增加表id与表名的映射关系
     iv. 在各个请求处理函数中,解析到请求的”表id“之后,映射为表名,再加以判断
   4. 实现:
     a. leader meta_server定期地通过http请求从ranger获取pegasus的ACL
     b. 解析Json格式的ACL成需要的数据结构
     c. 设置到meta server自身的acl结构中,也存储到远端存储(即zookeeper)
     d. 设置到各个表的envs中
     e. 后续通过meta server → replica server的同步,将envs下发到各个replica server上
   5. 表名与database名的映射关系:
     a. 通过符号“.”来划分database名,“.”之前的即为database name
     b. 启动时,对于已创建的表,如果不符合分割方式,则他处于“default” database中
     c. 开启ACL后,再创建不符合分割规则的表则报错
     d. 对于rename操作,不允许修改前缀


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to