CREATE USER
CREATE USER 用于创建 StarRocks 用户。在 StarRocks 中,“user_identity” 唯一标识一个用户。从 v3.3.3 起,StarRocks 支持在创建用户时设置用户属性。
只有具有 user_admin
角色的用户才有权执行此操作。
语法
CREATE USER [IF NOT EXISTS] <user_identity>
[auth_option]
[DEFAULT ROLE <role_name>[, <role_name>, ...]]
[PROPERTIES ("key"="value", ...)]
参数
-
user_identity
由两部分组成,分别是 "user_name" 和 "host",格式为username@'userhost'
。对于 "host" 部分,可以使用%
进行模糊匹配。如果未指定 "host",则默认使用 "%",表示用户可以从任何主机连接到 StarRocks。有关用户名的命名约定,请参阅系统限制。
-
auth_option
指定身份验证方法。目前支持三种身份验证方法:StarRocks 原生密码、mysql_native_password 和 "authentication_ldap_simple"。StarRocks 原生密码在逻辑上与 mysql_native_password 相同,但在语法上略有不同。一个用户身份只能使用一种身份验证方法。auth_option: {
IDENTIFIED BY 'auth_string'
IDENTIFIED WITH mysql_native_password BY 'auth_string'
IDENTIFIED WITH mysql_native_password AS 'auth_string'
IDENTIFIED WITH authentication_ldap_simple AS 'auth_string'
}认证方式 用户创建密码 登录密码 原生密码 明文或密文 明文 mysql_native_password BY
明文 明文 mysql_native_password WITH
密文 明文 authentication_ldap_simple
明文 明文
注意:StarRocks 在存储用户密码之前对其进行加密。
-
DEFAULT ROLE <role_name>[, <role_name>, ...]
:如果指定此参数,则在用户登录时自动将角色分配给用户并默认激活。如果未指定,则此用户没有任何权限。请确保指定的所有角色都已存在。 -
PROPERTIES
设置用户属性,包括最大用户连接数 (max_user_connections
)、目录、数据库或用户级别的会话变量。用户级别的会话变量在用户登录时生效。此功能自 v3.3.3 起支持。-- Set the maximum user connection number.
PROPERTIES ("max_user_connections" = "<Integer>")
-- Set the catalog.
PROPERTIES ("catalog" = "<catalog_name>")
-- Set the database.
PROPERTIES ("catalog" = "<catalog_name>", "database" = "<database_name>")
-- Set session variables.
PROPERTIES ("session.<variable_name>" = "<value>", ...)提示PROPERTIES
作用于用户而不是用户身份。- 不能为特定用户设置全局变量和只读变量。
- 变量生效顺序如下:SET_VAR > 会话 > 用户属性 > 全局。
- 您可以使用SHOW PROPERTY 来查看特定用户的属性。
示例
示例 1:创建一个使用明文密码且未指定主机的用户,这等效于 jack@'%'
。
CREATE USER 'jack' IDENTIFIED BY '123456';
示例 2:创建一个使用明文密码并允许用户从 '172.10.1.10'
登录的用户。
CREATE USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password BY '123456';
示例 3:创建一个使用密文密码并允许用户从 '172.10.1.10'
登录的用户。
CREATE USER jack@'172.10.1.10' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
CREATE USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password AS '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
注意:您可以使用 password() 函数获取加密密码。
示例 4:创建一个允许从域名 'example_domain' 登录的用户。
CREATE USER 'jack'@['example_domain'] IDENTIFIED BY '123456';
示例 5:创建一个使用 LDAP 身份验证的用户。
CREATE USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple;
示例 6:创建一个使用 LDAP 身份验证并指定 LDAP 中用户的专有名称 (DN) 的用户。
CREATE USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple AS 'uid=jack,ou=company,dc=example,dc=com';
示例 7:创建一个允许从 '192.168' 子网登录的用户,并将 db_admin
和 user_admin
设置为该用户的默认角色。
CREATE USER 'jack'@'192.168.%' DEFAULT ROLE db_admin, user_admin;
示例 8:创建一个用户并将其最大用户连接数设置为 600
。
CREATE USER 'jack'@'192.168.%' PROPERTIES ("max_user_connections" = "600");
示例 9:创建一个用户并将其目录设置为 hive_catalog
。
CREATE USER 'jack'@'192.168.%' PROPERTIES ('catalog' = 'hive_catalog');
示例 10:创建一个用户并将用户在默认目录中的数据库设置为 test_db
。
CREATE USER 'jack'@'192.168.%' PROPERTIES ('catalog' = 'default_catalog', 'database' = 'test_db');
示例 11:创建一个用户并将该用户的会话变量 query_timeout
设置为 600
。
CREATE USER 'jack'@'192.168.%' PROPERTIES ('session.query_timeout' = '600');