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

配置Doris表的列权限管理

操作场景

在FE的自定义配置项中添加“enable_col_auth”参数开启列授权后,Doris支持对列级别权限的管理。

  • 该特性仅MRS 3.3.1及之后版本支持。
  • 表的列级别的授权仅支持Select_priv权限。
  • 必须使用具有Grant_priv权限的用户进行列权限的管理操作。
  • 被授予了列级别Select_priv权限的用户,如果执行select *查询表数据,结果只返回具有Select_priv权限的列。
  • 被授予了列级别Select_priv权限的用户,如果执行desc tbl查询表的详细信息,结果只返回具有Select_priv权限的列。
  • 支持视图和物化视图的列级别授权。

前提条件

  • 已创建包含Doris服务的集群,集群内各服务运行正常。
  • 待连接Doris数据库的节点与MRS集群网络互通。
  • 已安装MySQL客户端,相关操作可参考使用MySQL客户端连接Doris

操作步骤

  1. 登录FusionInsight Manager页面,选择“集群 > 服务 > Doris > 配置 > 全部配置”。
  2. 选择“FE(角色) > 自定义”,在参数文件“fe.conf”中添加自定义参数,参数名称为“enable_col_auth”,值为“true”
  3. 单击“保存”,单击“确定”,保存配置。
  4. 单击“实例”,勾选所有FE实例,选择“更多 > 重启实例”,重启所有FE实例。
  5. 登录安装了MySQL的节点,执行以下命令,连接Doris数据库。

    集群已启用Kerberos认证(安全模式),需先执行以下命令再连接Doris数据库:

    export LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN=1

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

    执行命令后输入数据库登录用户密码。

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

  6. 执行以下命令授予Select_priv权限:

    • 给用户授权:

      GRANT select_priv [(col1, col2...)] ON ctl.db.tbl TO 'user';

    • 给角色授权:

      GRANT select_priv [(col1, col2...)] ON ctl.db.tbl TO ROLE 'role';

  7. 执行以下命令查看用户权限:

    show grants for user;

  8. 执行以下命令回收列的Select_priv权限:

    • 回收用户的权限:

      revoke select_priv [(col1, col2...)] ON ctl.db.tbl from 'user';

    • 回收角色的权限:

      revoke select_priv [(col1, col2...)] ON ctl.db.tbl from ROLE 'role';

  9. 执行以下命令查看用户权限:

    show grants for user;