账户管理

Create user

该语句用来创建一个用户,需要管理员权限。如果在非default_cluster下create user,用户在登录连接palo和mini load等使用到用户名时,用户名将为user_name@cluster_name。如果在default_cluster下create user,用户在登录连接palo和mini load等使用到用户名时,用户名中不需要添加@cluster_name,即直接为user_name。

语法:

  1. CREATE USER user_specification [SUPERUSER]
  2. user_specification:
  3. 'user_name' [IDENTIFIED BY [PASSWORD] 'password']

说明:

CREATE USER命令可用于创建一个palo用户,使用这个命令需要使用者必须有管理员权限。SUPERUSER用于指定需要创建的用户是个超级用户

举例:

  1. 1.创建一个没有密码的用户,用户名为 jack
  1. CREATE USER 'jack'
  1. 2.创建一个带有密码的用户,用户名为 jack,并且密码被指定为 123456
  1. CREATE USER 'jack' IDENTIFIED BY '123456'
  1. 3.为了避免传递明文,用例2也可以使用下面的方式来创建
  1. CREATE USER 'jack' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'
  1. 后面加密的内容可以通过PASSWORD()获得到,例如:
  1. SELECT PASSWORD('123456')
  1. 4.创建一个超级用户'jack'
  1. CREATE USER 'jack' SUPERUSER

Drop user

该语句用于删除一个用户,需要管理员权限

语法:

  1. DROP USER 'user_name'

举例:

删除用户 jack

  1. DROP USER 'jack'

Alter user

该语句用于修改用户的相关属性以及分配给用户的资源

语法:

  1. ALTER USER user alter_user_clause_list
  2. alter_user_clause_list:
  3. alter_user_clause [, alter_user_clause] ...
  4. alter_user_clause:
  5. MODIFY RESOURCE resource value | MODIFY PROPERTY property value
  6. resource:
  7. CPU_SHARE
  8. property:
  9. MAX_USER_CONNECTIONS

举例:

  1. 1.修改用户jackCPU_SHARE1000
  1. ALTER USER jack MODIFY RESOURCE CPU_SHARE 1000
  1. 2.修改用户 jack 最大连接数为1000
  1. ALTER USER jack MODIFY PROPERTY MAX_USER_CONNECTIONS 1000

Alter quota

该语句用于修改某用户不同组资源的分配

语法:

  1. ALTER QUOTA FOR user_name MODIFY group_name value

举例:

  1. 修改system用户的normal组的权重
  1. ALTER QUOTA FOR system MODIFY normal 400;

Grant

该语句用于将一个数据库的具体权限授权给具体用户。调用者必须是管理员身份。权限当前只包括只读 (READ_ONLY),读写 (READ_WRITE) 两种权限,如果指定为ALL,那么就是将全部权限授予该用户。

语法:

  1. GRANT privilege_list ON db_name TO 'user_name'
  2. privilege_list:
  3. privilege [, privilege] ...
  4. privilege:
  5. READ_ONLY | READ_WRITE | ALL

举例:

  1. 1.授予用户 jack 数据库 testDb 的写权限
  1. GRANT READ_ONLY ON testDb to 'jack';
  1. 2.授予用户 jack 数据库 testDb 全部权限
  1. GRANT ALL ON testDb to 'jack';

Set password

该语句用于修改一个用户的登录密码。如果 [FOR 'user_name'] 字段不存在,那么修改当前用户的密码。PASSWORD() 方式输入的是明文密码; 而直接使用字符串,需要传递的是已加密的密码。如果修改其他用户的密码,需要具有管理员权限。

语法:

  1. SET PASSWORD [FOR 'user_name'] = [PASSWORD('plain password')]|['hashed password']

举例:

  1. 1.修改当前用户的密码为 123456
  1. SET PASSWORD = PASSWORD('123456')
  2. SET PASSWORD = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'
  1. 2.修改用户 jack 的密码为 123456
  1. SET PASSWORD FOR 'jack' = PASSWORD('123456')
  2. SET PASSWORD FOR 'jack' = '\*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'