用户管理¶
用户管理是 NebulaGraph 访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。
开启身份验证后,用户需要使用已创建的用户才能连接 NebulaGraph,而且连接后可以进行的操作也取决于该用户拥有的角色权限。
Note
- 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 NebulaGraph。
- 修改权限后,对应的用户需要重新登录才能生效。
创建用户(CREATE USER
)¶
执行CREATE USER
语句可以创建新的 NebulaGraph 用户。当前仅 God 角色用户(即root
用户)能够执行CREATE USER
语句。
-
语法
CREATE USER [IF NOT EXISTS] <user_name> [WITH PASSWORD '<password>'];
IF NOT EXISTS
:检测待创建的用户名是否存在,只有不存在时,才会创建新用户。user_name
:待创建的用户名。password
:用户名对应的密码。
-
企业版语法
CREATE USER [IF NOT EXISTS] <user_name> [WITH PASSWORD '<password>'][WITH IP WHITELIST <ip_list>];
ip_list
(企业版):IP 白名单列表。该用户只有通过列表内的 IP 才能连接 NebulaGraph。多个 IP 之间用英文逗号(,)分隔。
-
示例
nebula> CREATE USER user1 WITH PASSWORD 'nebula'; nebula> SHOW USERS; +---------+-------------------------------+ | Account | IP Whitelist | +---------+-------------------------------+ | "root" | "" | | "user1" | "" | +---------+-------------------------------+
-
企业版示例
nebula> CREATE USER user2 WITH PASSWORD 'nebula' WITH IP WHITELIST 192.168.10.10,192.168.10.12; nebula> SHOW USERS; +---------+-------------------------------+ | Account | IP Whitelist | +---------+-------------------------------+ | "user2" | "192.168.10.10,192.168.10.12" | +---------+-------------------------------+
授权用户(GRANT ROLE
)¶
执行GRANT ROLE
语句可以将指定图空间的内置角色权限授予用户。当前仅 God 角色用户和 Admin 角色用户能够执行GRANT ROLE
语句。角色权限的说明,请参见内置角色权限。
-
语法
GRANT ROLE <role_type> ON <space_name> TO <user_name>;
-
示例
nebula> GRANT ROLE USER ON basketballplayer TO user1;
撤销用户权限(REVOKE ROLE
)¶
执行REVOKE ROLE
语句可以撤销用户的指定图空间的内置角色权限。当前仅 God 角色用户和 Admin 角色用户能够执行REVOKE ROLE
语句。角色权限的说明,请参见内置角色权限。
-
语法
REVOKE ROLE <role_type> ON <space_name> FROM <user_name>;
-
示例
nebula> REVOKE ROLE USER ON basketballplayer FROM user1;
查看指定用户权限(DESCRIBE USER
)¶
执行DESCRIBE USER
语句可以查看指定用户的角色权限信息。
-
语法
DESCRIBE USER <user_name>; DESC USER <user_name>;
-
示例
nebula> DESCRIBE USER user1; +---------+--------------------+ | role | space | +---------+--------------------+ | "ADMIN" | "basketballplayer" | +---------+--------------------+
查看指定空间内用户权限(SHOW ROLES
)¶
执行SHOW ROLES
语句可以查看指定空间内的所有用户(除root
以外)和对应角色权限的信息。
-
语法
SHOW ROLES IN <space_name>;
-
示例
nebula> SHOW ROLES IN basketballplayer; +---------+-----------+ | Account | Role Type | +---------+-----------+ | "user1" | "ADMIN" | +---------+-----------+
修改用户密码(CHANGE PASSWORD
)¶
执行CHANGE PASSWORD
语句可以修改用户密码,修改时需要提供旧密码和新密码。
-
语法
CHANGE PASSWORD <user_name> FROM '<old_password>' TO '<new_password>';
-
示例
nebula> CHANGE PASSWORD user1 FROM 'nebula' TO 'nebula123';
修改用户密码(ALTER USER
)¶
执行ALTER USER
语句可以修改用户密码,修改时不需要提供旧密码。当前仅 God 角色用户(即root
用户)能够执行ALTER USER
语句。
-
语法
ALTER USER <user_name> WITH PASSWORD '<password>';
-
企业版语法
ALTER USER <user_name> WITH PASSWORD '<password>' [WITH IP WHITELIST <ip_list>];
-
示例
nebula> ALTER USER user2 WITH PASSWORD 'nebula'; nebula> SHOW USERS; +---------+--------------+ | Account | IP Whitelist | +---------+--------------+ | "root" | "" | | "user1" | "" | | "user2" | "" | +---------+--------------+
-
企业版示例
Enterpriseonly
没有使用
WITH IP WHITELIST
时,表示取消 IP 白名单,用户使用任何 IP 都可以连接 NebulaGraph。nebula> ALTER USER user2 WITH PASSWORD 'nebula' WITH IP WHITELIST 192.168.10.10;
删除用户(DROP USER
)¶
执行DROP USER
语句可以删除用户。当前仅 God 角色用户能够执行DROP USER
语句。
Note
删除用户不会自动断开该用户当前会话,而且权限仍在当前会话中生效。
-
语法
DROP USER [IF EXISTS] <user_name>;
-
示例
nebula> DROP USER user1;
查看用户列表(SHOW USERS
)¶
执行SHOW USERS
语句可以查看用户列表。当前仅 God 角色用户能够执行SHOW USERS
语句。
-
语法
SHOW USERS;
-
示例
nebula> SHOW USERS; +---------+-----------------+ | Account | IP Whitelist | +---------+-----------------+ | "root" | "" | | "user1" | "" | | "user2" | "192.168.10.10" | +---------+-----------------+