记录:我写了一个程序:禁止用户Drop数据库 | 禁止Drop database包括用户自身建的库也无权限删除
业务场景:
大数据集群中偶发出现用户删错数据库现象,使用较高权限的开发用户将别人的数据库误删除,人为进行的操作,该怎么避免?
目的:
使用Ranger鉴权组件,对数据库开发用户组内的每一个用户,进行drop database权限限制,该如何限制呢?
程序优势:不可能每新增1个数据库开发用户或新增1个数据库,就要手动去创建1条策略 限制新用户的权限。本程序实现一次策略设置,即可对每一个数据库开发用户 进行权限限制。主要作用是对高权限用户起到权限限制作用。
思路:
- 设置一个策略,策略对一个不存在的库取反
- 禁止集群内部的所有开发用户组(示例为hive、supergroup、hadoopmanger等)
- 禁止操作项:Drop
主业务程序如下:创建禁止Drop database策略 (RangerAPI)
完整代码:详见主页「资源」
策略创建完成后去Ranger webui查看此策略:
策略名:deny-all-db-drop
策略详情说明如下图:(优势: 每新增1个数据库开发用户或新增1个数据库,就要手动去创建1条策略 限制新用户的权限。本程序实现一次策略设置,即可对每一个数据库开发用户 进行权限限制)
#本程序实现一次策略设置,即可对每一个数据库开发用户 进行权限限制(限制Drop database)
#真实业务开发 #大数据 #Java