数据源级别权限管控
本文演示在专属集群中启用数据源级别权限管控后,用户在缺乏目标数据源权限的情况下,将无法对相关任务进行操作。
背景信息
NineData 专属集群的复制任务在启动以后,用户可以通过运维中心的任务管理对任务进行调度管理。在多用户场景下,可能会出现越权操作或误操作的风险,影响生产业务从而导致严重后果。
为此,NineData 将数据源级别权限与运维中心任务管理进行联动,确保用户只有在具备目标数据源权限的情况下,才能对相关任务进行运维操作。该机制确保了:
任务可见性:用户仍然可以获知任务存在及其基本信息。
操作隔离性:只有具备数据源权限的用户,才能真正干预任务的运行。
功能说明
在 NineData 专属集群中,数据源权限不仅决定用户是否能够访问某个数据源,还会直接决定其在运维中心任务管理中的操作范围:
用户权限情况 | 任务可见 | 任务详情查看 | 修改任务流程和属性 | 启停操作 | 登录终端 |
---|---|---|---|---|---|
无目标数据源权限 | ✅ 允许 | ✅ 允许 | ❌ 禁止 | ❌ 禁止 | ❌ 禁止 |
有目标数据源权限 | ✅ 允许 | ✅ 允许 | ✅ 允许 | ✅ 允许 | ✅ 允许 |
场景设定
复制任务:管理员用户(admin)预先创建好 MySQL A > MySQL B,MySQL C > MySQL D 两条复制链路。
用户:创建两个不同用户,分别对他们授予不同的数据源权限,然后登录这两个用户分别对有权限和无权限的运维任务进行操作。
用户 角色名 授权数据源 user_a role_mysql_a-b MySQL A, MySQL B user_b role_mysql_c-d MySQL C, MySQL D 最终效果是:user_a 无法操作 MySQL C、D 的相关运维任务,而 user_b 无法操作 MySQL A、B 的相关运维任务。
步骤一:创建角色并配置数据源权限
用系统管理员账号登录 NineData 控制台。
在左侧导航栏,单击账户管理 > 角色管理。
单击新建角色,创建两个角色:
role_mysql_a-b
role_mysql_c-d
单击目标角色,然后单击数据源权限页签,并单击添加数据源权限,分别为新建的两个角色添加不同数据源的权限:
role_mysql_a-b
:授权访问MySQL A
与MySQL B
,并授权的权限(包含和)。role_mysql_c-d
:授权访问MySQL C
与MySQL D
,其他同role_mysql_a-b
。
步骤二:创建用户并绑定角色
用系统管理员账号登录 NineData 控制台。
在左侧导航栏,单击账户管理 > 用户管理。
单击右上角 邀请用户,然后创建两个用户并分别绑定步骤一中创建的角色。单击确定,系统将生成用户登录信息。
- user_a:绑定
role_mysql_a-b
。 - user_b:绑定
role_mysql_c-d
。
- user_a:绑定
步骤二:使用 user_a 或 user_b 查看运维任务并尝试操作
使用步骤一中新建的任意账号登录 NineData 控制台,本示例登录了 user_a。
在左侧导航栏单击 > ,在页面,可以看到管理员(admin)创建的两个复制任务,其中
rp-dcpvjufzhzcj
是 user_a 拥有数据源权限的任务。单击有权限的任务 ID,进入详情页,可以查看详情并且可以对该任务进行各项操作。
返回任务列表页,单击无权限的任务 ID,进入详情页,可以查看详情但无法对该任务进行任何操作,操作会提示无权限。