原生身份验证
通过 SQL 命令在 StarRocks 中使用原生身份验证创建和管理用户。
StarRocks 原生身份验证是一种基于密码的身份验证方法。 除此之外,StarRocks 还支持与外部身份验证系统集成,例如 LDAP、OpenID Connect 和 OAuth 2.0。 有关更多说明,请参阅使用安全集成进行身份验证。
具有系统定义的角色user_admin
的用户可以在 StarRocks 中创建用户、修改用户和删除用户。
创建用户
您可以通过指定用户身份、身份验证方法以及可选的默认角色来创建用户。 要为用户启用原生身份验证,您需要在纯文本或密文中显式指定密码。
以下示例创建用户 jack
,允许它仅从 IP 地址 172.10.1.10
连接,启用原生身份验证,将密码设置为纯文本 12345
,并将角色 example_role
分配为它的默认角色
CREATE USER jack@'172.10.1.10' IDENTIFIED BY '12345' DEFAULT ROLE 'example_role';
- StarRocks 在存储用户的密码之前对其进行加密。 您可以使用 password() 函数获取加密后的密码。
- 如果在用户创建期间未指定默认角色,则会将系统定义的默认角色
PUBLIC
分配给用户。
用户连接到 StarRocks 时会自动激活用户的默认角色。 有关如何在连接后为用户启用所有(默认和授予的)角色的说明,请参阅启用所有角色。
有关创建用户的更多信息和高级说明,请参阅CREATE USER。
修改用户
您可以修改用户的密码、默认角色或属性。
有关如何修改用户的默认角色的说明,请参阅修改默认角色。
修改用户的属性
您可以使用ALTER USER设置用户的属性。
以下示例将用户 jack
的最大连接数设置为 1000
。 具有相同用户名的用户身份共享相同的属性。
因此,您只需要为 jack
设置属性,此设置将对所有用户名为 jack
的用户身份生效。
ALTER USER 'jack' SET PROPERTIES ("max_user_connections" = "1000");
重置用户的密码
您可以使用SET PASSWORD或ALTER USER重置用户的密码。
注意
- 任何用户都可以重置自己的密码,而无需任何权限。
- 只有
root
用户本身才能设置其密码。 如果您忘记了密码并且无法连接到 StarRocks,请参阅重置丢失的 root 密码以获取更多说明。
以下两个示例都将 jack
的密码重置为 54321
-
使用 SET PASSWORD 重置密码
SET PASSWORD FOR jack@'172.10.1.10' = PASSWORD('54321');
-
使用 ALTER USER 重置密码
ALTER USER jack@'172.10.1.10' IDENTIFIED BY '54321';
重置丢失的 root 密码
如果您忘记了 root
用户的密码并且无法连接到 StarRocks,您可以通过以下步骤重置它
-
将以下配置项添加到所有 FE 节点的配置文件 fe/conf/fe.conf 以禁用用户身份验证
enable_auth_check = false
-
重新启动所有 FE 节点以使配置生效。
./fe/bin/stop_fe.sh
./fe/bin/start_fe.sh -
从 MySQL 客户端通过
root
用户连接到 StarRocks。 禁用用户身份验证时,您无需指定密码。mysql -h <fe_ip_or_fqdn> -P<fe_query_port> -uroot
-
重置
root
用户的密码。SET PASSWORD for root = PASSWORD('xxxxxx');
-
通过在所有 FE 节点的配置文件 fe/conf/fe.conf 中将配置项
enable_auth_check
设置为true
来重新启用用户身份验证。enable_auth_check = true
-
重新启动所有 FE 节点以使配置生效。
./fe/bin/stop_fe.sh
./fe/bin/start_fe.sh -
使用
root
用户和新密码从 MySQL 客户端连接到 StarRocks,以验证密码是否已成功重置。mysql -h <fe_ip_or_fqdn> -P<fe_query_port> -uroot -p<xxxxxx>
删除用户
您可以使用DROP USER删除用户。
以下示例删除用户 jack
DROP USER jack@'172.10.1.10';
查看用户
您可以使用 SHOW USERS 查看 StarRocks 集群中的所有用户。
SHOW USERS;
查看用户属性
您可以使用SHOW PROPERTY查看用户的属性。
以下示例显示用户 jack
的属性
SHOW PROPERTY FOR jack@'172.10.1.10';