跳转至

用户管理

用户管理是 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" |
    +---------+-----------------+
    

最后更新: September 4, 2023