更新时间:2024-11-29 GMT+08:00

创建用户并分配权限

前提条件

  • 已完成用户和权限的规划。
  • 若通过FusionInsight Manager创建MOTService用户,需先创建关联了MOTService用户编辑权限角色的用户,以该用户登录FusionInsight Manager创建MOTService用户,集群的admin用户不具有MOTService用户管理权限。

创建MOTService角色

  1. 登录FusionInsight Manager。
  2. 选择“系统 > 权限 > 角色”。
  3. 单击“添加角色”,然后在“角色名称”和“描述”输入角色名字与描述。
  4. 设置角色“配置资源权限”。MOTService权限类型:

    • MOTService用户编辑权限:是最高权限,具有创建和修改MOTService用户的权限。
    • MOTService用户查看权限:具有查看MOTService用户信息权限。
    表1 设置角色

    任务场景

    角色授权操作

    设置具有MOTService用户编辑权限

    在“配置资源权限”的表格中选择“待操作集群的名称 > MOTService > Mot用户权限”,勾选“编辑”。具有“编辑”权限的用户默认也具有“查看”权限。

    设置具有MOTService用户查看权限

    在“配置资源权限”的表格中选择“待操作集群的名称 > MOTService > Mot用户权限”,勾选“查看”。

  5. 单击“确定”。

创建具有MOTService用户管理权限的用户

  1. 登录FusionInsight Manager。
  2. 选择“系统 > 权限 > 用户 > 添加用户”。
  3. 填写“用户名”,例如“motAdmin”。
  4. 设置“用户类型”,选择“人机”。
  5. 填写“密码”和“确认新密码”。
  6. “用户组”和“主组”可保持默认或根据需求添加。
  7. 在“角色”,单击“添加”,为该用户绑定“default”、“System_administrator”以及具有MOTService用户编辑权限的角色。
  8. 单击“确定”。

创建MOTService用户

方式一:通过在Manager界面的MOTService“用户管理”创建用户:

  1. 以具有MOTService用户管理权限的用户(如motAdmin)登录FusionInsight Manager,选择“集群 > 服务 > MOTService > 用户管理”。
  2. 单击“创建用户”,填写用户名称及密码,并根据需求选择用户类型,用户类型详情可参考表1

    • 系统管理员:具有数据库的最高权限,并且具有所有的系统权限和对象权限。
    • 普通用户:可以访问MOTService默认的系统表和视图(pg_authid,pg_largeobject,pg_user_status,pg_auth_history除外),可以连接默认的数据库postgres以及使用public模式下的对象。

  3. 单击“确定”等待创建完成。

    最多创建20个用户,用户创建完成后,单击该用户所在行的“修改”,可修改该用户的用户类型和密码,但不支持同时修改用户类型和用户密码。

方式二:通过登录节点创建用户:

  1. 登录FusionInsight Manager,选择“集群 > 服务 > MOTService > 实例”,查看并记录“MOTServer(主)”实例的业务IP。
  2. omm用户登录MOTService主节点,执行如下命令启动环境变量。

    source ${MOTSERVER_HOME}/.motservice_profile

  3. 使用gsql命令连接MOTService并输入MOTService数据库omm用户密码。

    gsql -d postgres -p 20105

    MOTService数据库的omm密码请联系系统管理员获取。

  4. 创建用户并分配权限。

    1. 创建用户并分配系统权限。

      如创建一个数据库权限的用户:

      CREATE USER joe WITH CREATEDB PASSWORD "password";

    2. 给用户指定对象权限,详细语法请参见GRANT和REVOKE。

      如将表“hr.staffs”的“select”权限赋给用户joe

      GRANT SELECT ON TABLE hr.staffs to joe;

    3. 给角色赋予对象权限,详细语法请参见GRANT和REVOKE。

      将表“hr.staffs”的“select”权限赋给角色lily

      postgres=# CREATE ROLE lily WITH CREATEDB PASSWORD "password";

      GRANT SELECT ON TABLE hr.staffs to lily;

    4. 将角色的权限赋予用户,详细语法请参见GRANT和REVOKE。

      将角色lily的权限赋给用户joe

      postgres=# GRANT lily to joe;

      当将角色的权限赋予用户时,角色的系统权限是无法传递的。