Starrocks一些基本语法

本文详细介绍了StarRocks数据库中管理角色和用户权限的操作,包括查看角色、用户,权限的赋予和撤销,以及密码修改。重点阐述了各种权限类型如NODE_PRIV、SELECT_PRIV等,并提供了相应的SQL命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 查看角色

1)查看已创建的所有角色
展示所有已创建的角色信息,包括角色名称,包含的用户以及权限:
SHOW ROLES;
2)查看当前用户角色[不支持],只能在管理员的用户下看所有的用户。

  • 查看用户
    查看所有用户
    SHOW ALL GRANTS;
    SHOW PROC '/auth';
    查看当前用户
    SELECT CURRENT_USER(); --显示用户
    SELECT USER();
  • 赋予权限
    GRANT privilege_list ON db_name[.tbl_name] TO user_identity;
    其中
    privilege_list
    是需要赋予的权限列表,以逗号分隔。当前StarRocks支持的权限基本分为三类:
    节点权限:NODE_PRIV
    库表权限:SELECT_PRIV,LOAD_PRIV,ALTER_PRIV,CREATE_PRIV,DROP_PRIV,ALL(前面所有)
    资源权限:USAGE_PRIV
    具体权限介绍:
    NODE_PRIV:集群节点操作权限,包括节点上下线等操作,只有root用户有该权限,不可赋予其他用户。
    ADMIN_PRIV:除NODE_PRIV以外的所有权限。
    GRANT_PRIV:操作权限的权限。包括创建删除用户、角色,授权和撤权,设置密码等。
    SELECT_PRIV:对指定的库或表的读取权限(Select操作)。
    LOAD_PRIV:对指定的库或表的导入权限(Insert或Delete操作)。
    ALTER_PRIV:对指定的库或表的schema变更权限。(Alter操作)
    CREATE_PRIV:对指定的库或表的创建权限(Create Table或Create View操作)。
    DROP_PRIV:对指定的库或表的删除权限。
    USAGE_PRIV:对指定资源的使用权限。
  • 权限查看
    查看当前用户权限:
    SHOW GRANTS;
    查看所有用户权限:
    SHOW ALL GRANTS;
    查看指定用户权限:
    SHOW GRANTS FOR user_identity;
  • 授予角色权限
    类似上文授予用户权限,将权限赋予指定的ROLE,如果指定的ROLE不存在,则会自动创建。
    GRANT privilege_list ON db_name[.tbl_name] TO ROLE 'role_name';
    GRANT privilege_list ON RESOURCE resource_name TO ROLE 'role_name';

    授予指定库的所有表的导入权限给角色
    GRANT LOAD_PRIV ON db1.* TO ROLE 'my_role';
    GRANT USAGE_PRIV ON RESOURCE 'spark_resource' TO ROLE 'my_role';
  • 撤销用户权限
    REVOKE privilege_list ON db_name[.tbl_name] FROM user_identity;
    REVOKE privilege_list ON RESOURCE resource_name FROM user_identity;
    user_identity:语法同CREATE USER,且必须为使用CREATE USER创建过的user_identity。user_identity中的host可以是域名,如果是域名,权限的撤销时间可能会有约1分钟的延迟。
  • 给用户添加角色[不支持] ,当前只能在新建用户时指定对应角色。
  • 修改用户登录密码
  • SET PASSWORD [FOR user_identity] = [PASSWORD('plain password')]|['hashed password'];
    SET PASSWORD命令可以修改一个用户的登录密码。如果[FOR user_identity]字段不存在,那么修改当前用户的密码。注意这里的user_identity必须完全匹配在使用CREATE USER创建用户时指定的user_identity,否则会报错用户不存在。如果不指定user_identity,则当前用户为'username'@'ip',这个当前用户,可能无法匹配任何user_identity。
    修改其他用户的密码,需要具有管理员权限。
    修改密码时,也可以使用PASSWORD()函数将明文密码转换为加密的密码。如果不使用PASSWORD()函数,则需要直接指定加密后的密码。
    SET PASSWORD = PASSWORD('123456');
    或:SELECT PASSWORD('123456');
    得到结果为:*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
    设置密码:
    SET PASSWORD = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
  • 设置用户属性
    SET PROPERTY [FOR 'user'] 'key' = 'value' [, 'key' = 'value']
    这里设置的用户属性,是针对user的,而不是user_identity。目前该参数主要用于修改用户的最大连接数,例如:
    修改用户jack最大连接数为1000:
    SET PROPERTY FOR 'jack' 'max_user_connections' = '1000';
  • 查看用户属性;
    SHOW PROPERTY FOR 'user';
  • 创建表
    CREATE TABLE IF NOT EXISTS detail (
    event_time DATETIME NOT NULL COMMENT "datetime of event",
    event_type INT NOT NULL COMMENT "type of event",
    user_id INT COMMENT "id of user",
    device_code INT COMMENT "device code",
    channel INT COMMENT "")
    DUPLICATE KEY(event_time, event_type)
    DISTRIBUTED BY HASH(user_id) BUCKETS 8
    PROPERTIES("replication_num"="1");
    其中 如果单机版本,则 "replication_num"="1" 设置成1 ,默认需要3个be.
  • 查看物化视图
    SHOW MATERIALIZED VIEW IN doris; doris 就是当前库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值