利用阿里云API进行RDS授权

利用阿里云API进行RDS授权
  话说自从生产系统9月上线后,领导对数据库RDS权限非常重视,需要回收本给开发使用、具有读写权限的账号,平时默认只给该账号开只读权限。然后系统因为刚上线,问题很多,经常需要动生产库数据进行人工修正。
  一开始动数据库数据,是我授权给开发,用完回收,后来改成统一要我运行开发给的sql。领导意见是:开发人员先在体验环境写好sql 验证过,成功后再发我,我在正式库跑。因为我不懂系统业务逻辑,所以有时候还是需要授权给开发自己改。昨天领导叫我研究下,能否利用天翼的堡垒机来控制数据库使用时长:设置堡垒机用户登录时间和结束时间,来达到自动退出连接的要求。
(我当时真是迷之疑惑,他说我授权和回收需要登录阿里云控制台,一来一回需要操作两次,但设置时间只需要一次,而且怕我忘记回收权限,我就说万一结束时间到了开发还没用完,岂不是还得手动开结束时间??!)
  

   很不幸的是,不行!只要登录了堡垒机,navicat连着数据库不断开,这个账号有效时间根本起不了效果。除非达到堡垒机超时退出登录,或者手动退出堡垒机再登才会连不上(前提是过了设置的结束时间)。会弹出这样的提示框:

   之前也有做数据库权限控制,不过用的是shell脚本,思路是:登录数据库,进行grant和revoke进行控制,核心两条命令:

回收权限:revoke insert, delete, update, alter, create on $choice_db.* from 用户; flush privileges;

授权:grant select, insert, delete, update, alter, create  on $choice_db.* to 用户; flush privileges;

   昨天确认过,阿里有api接口可以调用,进行数据库权限管理,今天测试过,好用~(早搞好,早超脱,昨天下班后路上开发还找我跑sql = =,各种拉仇恨)

参考:https://help.aliyun.com/document_detail/26266.html

1、条件准备:

  访问控制里建个子用户,

(1)授权管理云数据库服务(RDS)的权限: AliyunRDSFullAccess

 (2)记录该子用户的 AccessKey ID 和 AccessKey Secret,后面程序会用到

2、利用阿里调试窗口看看效果

为后面写到服务器上脚本做准备

 还是“授权账号”的页面【https://help.aliyun.com/document_detail/26266.html】,拉到“调试” 这里,选“调试” 跳转到调试窗口

 我这里选的是python,填入左边相关数据库信息,把生成的python代码拷下来,放服务器就能用。

 

 

3、放到服务器上部署py脚本

需要安装阿里python包: aliyunsdkcore

pip3 install aliyunsdkcore

 然后把调试窗口那堆python代码拷下来,我这里设置了别名授权,到时哪怕我在路上,手机授权都方便,完美~~~

   最后说下这个授权,实际上也包括回收权限,改下对应参数值就行。

 

  

posted @ 2022-09-17 15:55  windysai  阅读(281)  评论(0编辑  收藏  举报