Source: https://dev-docs.yueshu.com.cn/v5.3.2/server-admin/authentication/sessionless/ Documentation version: v5.3.2 # 无会话模式 无会话模式允许 SDK 客户端使用空用户名和空密码连接悦数图数据库开发版。Graph 服务使用`sessionless_user`指定的用户身份检查请求权限。 共享用户权限 所有无会话客户端共享该用户的权限。请使用专门的普通用户,并仅授予应用所需权限;不要使用服务组 Owner 或具有`ADMIN`角色的用户。 ## 前提条件 - 已按[使用 Docker Compose 部署开发版](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/)启动悦数图数据库开发版。 - 已准备 Meta 服务的`root`密码,以及具有`ADMIN`角色的 Graph 服务账号。 - 已明确应用需要访问的 Schema、图和操作,以便授予相应权限。 ## 配置无会话模式 以下示例使用普通用户`testUser1`。用户创建命令在`ngctl`容器中执行;配置和容器管理命令在开发机的部署目录中执行。PowerShell 写法见[启动命令说明](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#powershell)。 1. 按[在 Docker Compose 部署中运行 ngctl](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/ngctl/#docker-compose) 登录 Meta 服务,创建用户: ```` ngctl user create testUser1 --password testPassword1 ```` 2. 以具有`ADMIN`角色的用户[连接 Graph 服务](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#connect),邀请用户并授予连接权限: ```` ''' INVITE USER testUser1 ''' ''' GRANT CONNECT TO USER testUser1 ''' ```` 再按[为用户配置访问权限](https://dev-docs.yueshu.com.cn/v5.3.2/server-admin/authorization/configure-user-access/)授予应用需要的资源权限。访问非默认 Schema 需要`USAGE`,查询图还需要`MATCH`。 3. 返回开发机终端,在`compose.yaml`的`services.graphd.command`列表末尾添加`--sessionless_user=testUser1`,保留原有参数。修改后的列表如下,其余服务配置保持原值: ```` services: graphd: command: - --meta_server_addrs=graph-cluster:9559 - --port=9669 - --host=graph-cluster - --memory_dynamic_reserved_gb=1 - --sessionless_user=testUser1 ```` 4. 在`compose.yaml`所在目录检查并应用配置。此操作会重新创建 Graph 容器,中断其已有连接: ```` docker compose config --quiet ACCEPT_EULA=Y docker compose up -d graphd ```` 通过`docker compose ps --all`检查容器状态。仅执行`docker compose restart graphd`不会应用修改后的启动参数。 5. 在 SDK 中将用户名和密码均设为`""`,连接 Graph 服务。执行`RETURN 1 AS result`,应返回`1`;再执行应用查询,确认`testUser1`可以访问所需资源。连接代码见 [Java SDK 指南](https://dev-docs.yueshu.com.cn/v5.3.2/clients/java-client/)和 [Go SDK 指南](https://dev-docs.yueshu.com.cn/v5.3.2/clients/go-client/)。 ## 关闭无会话模式 从`services.graphd.command`中删除`--sessionless_user=testUser1`,保存后在部署目录执行: ```` docker compose config --quiet ACCEPT_EULA=Y docker compose up -d graphd ```` Graph 容器重新创建后,空用户名和空密码不能再用于登录。客户端需使用正常的用户名和密码重新连接。 无会话模式跳过 Meta 用户认证,因此仅禁用`testUser1`不会停止无会话访问。撤销该用户的`CONNECT`可阻止新的无会话连接,但不会自动终止已有连接。