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

Doris权限管理

Doris权限管理系统实现了行级别细粒度的权限控制,和基于角色的权限访问控制。

用户权限介绍

Doris目前支持的权限如表1所示。

表1 Doris权限列表

权限名称

权限介绍

Node_priv

节点变更权限。包括FE、BE、DBroker节点的添加、删除、下线等操作。

该权限只能赋予Global级别。

Admin_priv

除NODE_PRIV以外的所有权限。

Grant_priv

权限变更权限,允许执行授权、撤权、添加/删除/变更用户/角色 等操作。

拥有该权限的用户不能赋予其他用户“node_priv”权限,除非用户本身拥有“node_priv”权限。

Select_priv

对数据库、表的只读权限。

Load_priv

对数据库、表的写权限,包括Load、Insert、Delete等。

Alter_priv

对数据库、表的更改权限。包括重命名库/表、添加/删除/变更 列、添加/删除分区等操作。

Create_priv

创建数据库、表、视图的权限。

Drop_priv

删除数据库、表、视图的权限。

Usage_priv

资源的使用权限和workload group权限。

根据权限适用范围的不同,将库表的权限分为以下四个层级:

  • CATALOG LEVEL:数据目录(Catalog)级权限。被授予的权限适用于指定Catalog中的任意库表。
  • DATABASE LEVEL:数据库级权限。被授予的权限适用于指定数据库中的任意表。
  • TABLE LEVEL:表级权限。被授予的权限适用于指定数据库中的指定表。
  • RESOURCE LEVEL: 资源级权限。被授予的权限适用于指定资源。

前提条件

  • Doris服务运行正常。
  • 角色名称不能为operatoradmin
  • 集群已启用Kerberos认证(安全模式)时,Doris赋权成功后,权限生效时间大约为2分钟。

添加Doris角色(集群已启用Kerberos认证(安全模式)

  1. 登录Manager,选择“系统 > 权限 > 角色”,在“角色”界面单击“添加角色”按钮,进入添加角色页面。
  1. 在添加角色界面输入“角色名称”,在配置资源权限处单击集群名称,进入服务列表页面,单击Doris服务,进入Doris权限资源页面。

    根据业务需求确定是否要创建具有Doris管理员权限的角色。

    • Doris管理员权限为:除去节点操作权限外的所有权限。
    • 角色名:添加的角色名不能包含中划线字符“-”,否则会导致认证失败。
    • 是,执行3
    • 否,执行4

  2. 勾选“Doris管理员权限”,单击“确定”,操作结束。
  3. 单击“Doris读写权限”,勾选对应资源的查询、删除、插入、修改、创建或授权权限。

    根据业务需求确定是否赋权。

  4. 授权完成后,单击“确定”操作结束。

添加用户并绑定Doris对应角色(集群已启用Kerberos认证(安全模式)

  1. 登录Manager,选择“系统 > 权限 > 用户”,单击“添加用户”,进入添加用户页面。
  2. “用户类型”选择“人机”,在“密码”和“确认新密码”参数设置该用户对应的密码。

    • 用户名:添加的用户名不能包含中划线字符“-”,否则会导致认证失败。
    • 密码:设置的密码不能携带“$”、“.”、“#”特殊字符,否则会导致认证失败。

  3. 在“角色”处单击“添加”,在弹框中选择具有Doris权限的角色,单击“确定”添加到角色,单击“确定”完成操作。
  4. 使用新建的用户重新登录FusionInsight Manager,修改该用户初始密码。
  5. 登录安装了MySQL客户端的节点,使用新添加的用户及修改后的密码连接Doris服务。

    export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1

    mysql -udorisuser -p数据库登录用户密码 -PFE查询连接端口 -hDoris FE实例IP地址

    • Doris FE的查询连接端口,可以通过登录Manager,单击“集群 > 服务 > Doris > 配置”,查询Doris服务的“query_port”参数获取。
    • Doris FE实例IP地址可通过登录MRS集群的Manager界面,单击“集群 > 服务 > Doris > 实例”,查看任一FE实例的IP地址。
    • 用户也可以使用MySQL连接软件或者Doris WebUI界面连接数据库。

添加角色并绑定给用户(集群未启用Kerberos认证(普通模式)

  1. 登录安装了MySQL客户端的节点,使用admin用户连接Doris服务。

    mysql -uadmin -PFE查询连接端口 -hDoris FE实例IP地址

    • admin用户默认密码为空。
    • Doris FE的查询连接端口,可以通过登录Manager,单击“集群 > 服务 > Doris > 配置”,查询Doris服务的“query_port”参数获取。
    • Doris FE实例IP地址可通过登录MRS集群的Manager界面,单击“集群 > 服务 > Doris > 实例”,查看任一FE实例的IP地址。
    • 用户也可以使用MySQL连接软件或者Doris WebUI界面连接数据库。

  2. 执行以下命令创建角色:

    CREATE ROLE dorisrole;

  3. 执行以下命令给角色授权,具体权限介绍请参见用户权限介绍。例如,授予角色ADMIN_PRIV权限:

    GRANT ADMIN_PRIV ON *.*.* TO ROLE 'dorisrole';

  4. 执行以下命令创建用户并绑定角色:

    CREATE USER 'dorisuser'@'%' IDENTIFIED BY 'password' DEFAULT ROLE 'dorisrole';