用户的系统使用权限大致可以分为可以看到的页面,以及能够看到的DB两个维度
这两个维度的权限都可以通过设置组来达到后期快速添加用户的需求
对于前者:
所有页面都可以根据需要分配给不同权限的用户
对于DB维度的权限:
一个DB可以配置role为read和write两个ip-port实例,用以区分查询和变更语句执行的实例,(也可以将role配置成all不进行区分)
对于数据库账户,一个DB可以配置多个,并分配给不同的用户,用以实现不同用户在同一db下区分权限的功能。(也可以保持默认设置,即分配给public用户,不进行区分)
如果要使用任务管理功能,需要为DB添加一个role为admin的数据库账号 。。。待续
wrong_msg="select '请检查输入语句'"
select_limit=200
export_limit=200
incp_host="x.x.x.x"
incp_port=6669
incp_user=""
incp_passwd=""
public_user="public"
select_limit 和 export_limit为系统默认查询和导出条数限制
incp_XX系列配置文件为inception的连接配置
python manage.py runserver 0.0.0.0:8000(启动前建议把settings.py中的debug设置为false)
(上面的启动方式可以自己测试时使用,实际使用不要使用django自带的server启动,因为好像是单线程在处理request的。。)
openssl genrsa -out foobar.key 2048
openssl req -new -key foobar.key -out foobar.csr
openssl x509 -req -days 365 -in foobar.csr -signkey foobar.key -out foobar.crt
支持单条sql的查询和查询结果的导出,导出条数限制默认为config.py中配置的值,也可以通过后台myapp_profile表对特定用户进行调整
支持单条sql语句的执行,用户能够执行的语句类型可以通过权限限制。
只有审核通过的sql,才能被提交至任务管理页面
可以审核、查看、修改、执行、预约任务执行时间,通过调用inception接口来实现
不同用户能够看到的页面按钮可以通过权限控制
任务界面如下:
点击执行后,任务会被发送给celery后台异步执行,通过点击状态按钮查看任务执行状态
可以配置邮件在任务生成和任务结束时候发送邮件告知相关人员
可以导出csv格式任务,支持utf8和gb18030两种导出格式
通过pt-osc执行的任务
通过inception调用pt-osc执行的任务可以被终止,但停止后需要到库中人工清理触发器 未通过pt-osc执行的任务
可以通过权限设置来限制用户是否能够编辑此页面的内容
可以单独变更执行的数据源,以实现同一语句在不同环境执行的需求
本平台记录所有用户在mysql_query,mysql_exec以及任务管理页面中执行的语句
这些语句可以通过日志查询页面进行搜索