mysql-archery的查询权限

一、背景

因为业务需求需要给开发开通查询权限到生产库,那么就需要一个最小的权限,接下来是操作的步骤

二、操作步骤

1.创建用户并授权

所需权限如下
mysql-archery的查询权限_第1张图片

2.添加查询权限的审批流程

mysql-archery的查询权限_第2张图片

3.用户自己申请需要查询的库表

mysql-archery的查询权限_第3张图片

4.填写指定内容并提交申请

mysql-archery的查询权限_第4张图片

4.1 报错
但是这里会有个问题,提交申请的时候报错:AttributeError: ‘QueryPrivilegesApply’ object has no attribute ‘syntax_type’

4.2 排查
进入到archery,查看archery下的logs下的archery.log,可以看到如下详细报错

[2022-03-02 13:34:18,217][ThreadPoolExecutor-0_0:139625897486080][task_id:default][query_privileges.py:256][ERROR]- Traceback (most recent call last):
  File "/opt/archery/sql/query_privileges.py", line 251, in query_priv_apply
    audit_result = Audit.add(WorkflowDict.workflow_type['query'], apply_id)
  File "/opt/archery/sql/utils/workflow_audit.py", line 35, in add
    syntax_type = workflow_detail.syntax_type
AttributeError: 'QueryPrivilegesApply' object has no attribute 'syntax_type'

4.3 原因
通过上面的日志可以看出具体报错在/opt/archery/sql/utils/workflow_audit.py的35行,内容为
syntax_type = workflow_detail.syntax_type,这是之前魔改的时候https://blog.csdn.net/line_on_database/article/details/120155041留下的bug,查看query_privileges_apply表结构,发现确实没有syntax_type

4.4 解决

# 原来的写法
# syntax_type = workflow_detail.syntax_type
# 现在的写法
syntax_type = 0

5.提交申请后,dba通过即可

你可能感兴趣的:(mysql,python,数据库)