暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Clickhouse开启SQL驱动方式创建用户和权限

运维笔谈 2024-04-29
182

Clickhouse默认创建用户和策略权限方式是配置xml文件,除非前期用户权限规划的特别完美,否则运行中维护起来非常的麻烦。建议还是开启SQL驱动的方式来创建。

一、开启SQL驱动方式创建用户和权限前提条件


  1. 主文件开启存放用户的定义信息路径。如下配置:

    <local_directory>
    <!-- Path to folder where users created by SQL commands are stored. -->
    <path>/data/clickhouse/access/</path>
    </local_directory>

    2.user.xml 文件配置  access_management 0是关闭,1是开启。如下配置:

      <!-- User can create other users and grant rights to them. -->
      <!-- <access_management>1</access_management> -->
      <access_management>1</access_management>

      默认ClickHouse提供了一个 default 账号,这个账号有所有的权限,但是不能使用SQL驱动方式的访问权限和账户管理。

      二、实践建议

      刚开始创建ClickHouse。推荐做法:首先default 用户开启SQL驱动方式的访问权限和用户管理。

      然后使用 default 用户登录并且创建所需要的所有用户。不要忘记创建管理员账户 GRANT ALL ON *.* TO dba WITH GRANT OPTION;

      最后限制 default 用户的权限并且禁用SQL驱动方式的访问权限和账户管理。

      三、官方创建用户SQL语法如下:

        CREATE USER [IF NOT EXISTS | OR REPLACE] name1 [ON CLUSTER cluster_name1]
        [, name2 [ON CLUSTER cluster_name2] ...]
        [NOT IDENTIFIED | IDENTIFIED {[WITH {no_password | plaintext_password | sha256_password | sha256_hash | double_sha1_password | double_sha1_hash}] BY {'password' | 'hash'}} | {WITH ldap SERVER 'server_name'} | {WITH kerberos [REALM 'realm']}]
        [HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]
        [DEFAULT ROLE role [,...]]
        [DEFAULT DATABASE database | NONE]
        [GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]]
        [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY | WRITABLE] | PROFILE 'profile_name'] [,...]

        SQL创建用户和权限的简单流程大致是:创建用户,创建Role,给Role授权,给用户赋予role。

        四、SQL创建用户简单参考

          #创建用户
          CREATE USER dba666 IDENTIFIED WITH sha256_password BY '123456';
          #创建一个Role
          CREATE ROLE accountant;
          #赋予Role accountant DB库的查询select权限
          GRANT SELECT ON db.* TO accountant;
          #给用户dba6赋予Role accountant
          GRANT accountant TO dba666;

          如果您在日常运维工作中遇到了任何问题或挑战,无论是关于系统配置、性能优化、故障排除还是其他方面,都欢迎您随时留言或私信我。我会尽我所能为您提供解决方案或建议。相互学习,积累更多的经验和知识,让工作更加顺畅高效!

          文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论