nebula graph 3.0.2 配置数字安全选项

本文详细介绍了NebulaGraph的身份验证机制,包括本地身份验证和OpenLDAP验证,并提供了用户管理的相关操作,如创建、授权、撤销用户权限,以及修改和删除用户等。此外,还阐述了内置角色权限的使用,帮助管理员更好地控制NebulaGraph的访问控制。
摘要由CSDN通过智能技术生成

验证和授权

身份验证

身份验证用于将会话映射到特定用户,从而实现访问控制

当客户端连接到 Nebula Graph 时,Nebula Graph 会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应
的用户。

默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 Nebula Graph。

Nebula Graph 支持两种身份验证方式:本地身份验证和 LDAP 验证。

本地身份验证

本地身份验证是指在服务器本地存储用户名、加密密码,当用户尝试访问 Nebula Graph 时,将进行身份验证。

启用本地身份验证

  1. 编辑配置文件 nebula-graphd.conf (默认目录为 /usr/local/nebula/etc/ ),设置如下参数:
  • –enable_authorize :是否启用身份验证,可选值: true 、 false 。
  • –failed_login_attempts :可选项,需要手动添加该参数。单个 Graph 节点允许连续输入错误密码的次数。超过该次数时,账户会被锁定。如果有多个
    Graph 节点,允许的次数为 节点数 * 次数 。
  • –password_lock_time_in_secs :可选项,需要手动添加该参数。多次输入错误密码后,账户被锁定的时间。单位:秒。
  1. 重启 Nebula Graph 服务

开启身份验证后,默认的 God 角色账号为 root ,密码为 nebula 。角色详情请参见内置角色权限。

OpenLDAP 验证
OpenLDAP 是轻型目录访问协议(LDAP)的开源实现,可以实现账号集中管理

当前仅企业版支持集成 OpenLDAP 进行身份验证,详情请参见使用 OpenLDAP 进行身份验证

用户管理

用户管理是 Nebula Graph 访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。
开启身份验证后,用户需要使用已创建的用户才能连接 Nebula Graph,而且连接后可以进行的操作也取决于该用户拥有的角色权限。

  • 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 Nebula Graph。
  • 修改权限后,对应的用户需要重新登录才能生效

创建用户( CREATE USER )

执行 CREATE USER 语句可以创建新的 Nebula Graph 用户。当前仅 God 角色用户(即 root 用户)能够执行 CREATE USER 语句

CREATE USER [IF NOT EXISTS] <user_name> [WITH PASSWORD '<password>'];

CREATE USER user1 WITH PASSWORD 'nebula';

授权用户( GRANT ROLE )

执行 GRANT ROLE 语句可以将指定图空间的内置角色权限授予用户。当前仅 God 角色用户和 Admin 角色用户能够执行 GRANT ROLE 语句。角色权限的说
明,请参见内置角色权限。

GRANT ROLE <role_type> ON <space_name> TO <user_name>;

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>;

 REVOKE ROLE USER ON basketballplayer FROM user1

查看指定用户权限( DESCRIBE USER )

执行 DESCRIBE USER 语句可以查看指定用户的角色权限信息。

DESCRIBE USER <user_name>;
DESC USER <user_name>;

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 user1 WITH PASSWORD 'nebula';

删除用户( DROP USER )

执行 DROP USER 语句可以删除用户。当前仅 God 角色用户能够执行 DROP USER 语句

删除用户不会自动断开该用户当前会话,而且权限仍在当前会话中生效。

DROP USER [IF EXISTS] <user_name>;

DROP USER user1;

查看用户列表( SHOW USERS )

执行 SHOW USERS 语句可以查看用户列表。当前仅 God 角色用户能够执行 SHOW USERS 语句。

SHOW USERS;

SHOW USERS;
+-----------+
| Account |
+-----------+
| "test1" |
| "test2" |
| "test3" |
+-----------+

内置角色权限

所谓角色,就是一组相关权限的集合。用户可以把角色分配给创建的用户,从而实现访问控制。

内置角色

Nebula Graph 内置了多种角色,说明如下:

  • God
  • 初始最高权限角色,拥有所有操作的权限。类似于 Linux 中的 root 和 * * Windows 中的 administrator 。
  • Meta 服务初始化时,会自动创建 God 角色用户 root ,密码为 nebula 。

请及时修改 root 用户的密码,保证数据安全

  • 一个集群只能有一个 God 角色用户,该用户可以管理集群内所有图空间。
  • 不支持手动授权 God 角色,只能使用默认 God 角色用户 root 。
  • Admin
  • 对权限内的图空间拥有 Schema 和 data 的读写权限。
  • 可以将权限内的图空间授权给其他用户。

只能授权低于 ADMIN 级别的角色给其他用户

  • DBA
  • 对权限内的图空间拥有 Schema 和 data 的读写权限。
  • 无法将权限内的图空间授权给其他用户。
  • User
  • 对权限内的图空间拥有 Schema 的只读权限。
  • 对权限内的图空间拥有 data 的读写权限。
  • Guest
  • 对权限内的图空间拥有 Schema 和 data 的只读权限。
  • 不支持自行创建角色,只能使用默认的内置角色。
  • 一个用户在一个图空间内只能拥有一个角色权限。授权用户请参见用户管理。

角色权限
各角色的执行权限如下
在这里插入图片描述

Show operations 为特殊操作,只会在自身权限内执行。例如 SHOW SPACES ,每个角色都可以执行,但是只会返回自身权限内的图空间。 只有 God 角色可
以执行 SHOW USERS 和 SHOW SNAPSHOTS 语句

使用 OpenLDAP 进行身份验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值