用户管理¶
用户管理是 Nebula Graph 访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。
开启身份验证后,用户需要使用已创建的用户才能连接 Nebula Graph,而且连接后可以进行的操作也取决于该用户拥有的角色权限。
Note
- 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 Nebula Graph。
- 修改权限后,对应的用户需要重新登录才能生效。
创建用户(CREATE USER
)¶
执行CREATE USER
语句可以创建新的 Nebula Graph 用户。当前仅 God 角色用户(即root
用户)能够执行CREATE USER
语句。
-
语法
CREATE USER [IF NOT EXISTS] <user_name> [WITH PASSWORD '<password>'];
-
示例
nebula> CREATE USER user1 WITH PASSWORD 'nebula';
授权用户(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>';
-
示例
nebula> ALTER USER user1 WITH PASSWORD 'nebula';
删除用户(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 | +-----------+ | "test1" | | "test2" | | "test3" | +-----------+