用户及权限管理

Lindorm搜索引擎支持通过API接口创建或删除用户、赋予或收回指定权限,包括READ,WRITE和ADMIN权限。权限生效范围共两种:GLOBAL(全局范围)和TABLE(索引范围)。本文介绍在Lindorm搜索引擎中管理用户及其权限的方法。

注意事项

Lindorm搜索引擎用户及权限管理功能目前处于公测阶段,如需体验该功能,请联系Lindorm技术支持(钉钉号:s0s3eg3)。

用户管理

Lindorm搜索引擎开通后会自动创建一个默认用户,并为其分配默认用户名和密码。该用户具有全局管理权限(GLOBAL ADMIN权限)。如何获取默认用户名和密码,请参见查看连接信息

重要

只有具备全局管理权限的用户可以创建或删除用户、赋予或收回权限。

创建用户

语法

PUT _plugins/_security/api/user/<username>

参数说明

参数类型

参数名称

说明

路径参数

username

新用户的用户名。

请求体参数

password

新用户的密码。格式为"password": "<新用户的密码>"

重要

新创建的用户不具备任何权限,需要由具有全局管理权限(GLOBAL ADMIN)的用户对新用户进行权限分配。获得相应权限后,通过该用户向搜索引擎发送的符合权限范围的请求才会被服务端接受并执行。如何赋予权限,请参见权限管理

示例

PUT _plugins/_security/api/user/newuser
{
  "password": "test***"
}

结果验证

您可以获取用户列表,查看用户是否已创建成功。具体操作,请参见获取用户列表

修改密码

语法

PUT _plugins/_security/api/account

参数说明

参数类型

参数名称

说明

请求体参数

user

需要修改密码的用户名。格式为"user": "<用户名>"

password

新用户的密码。格式为"password": "<新密码>"

示例

PUT _plugins/_security/api/account
{
  "user": "newuser",
  "password": "newpassword"
}

获取用户列表

语法

GET _plugins/_security/api/user

示例

GET _plugins/_security/api/user

获取指定用户详情

语法

GET _plugins/_security/api/user/<username>

参数说明

参数类型

参数名称

说明

路径参数

username

需要获取详细信息的用户。

示例

GET _plugins/_security/api/user/newuser

删除用户

语法

DELETE _plugins/_security/api/user/<username>

参数说明

参数类型

参数名称

说明

路径参数

username

需要删除的用户。

示例

DELETE _plugins/_security/api/user/newuser

结果验证

您可以获取用户列表,查看用户是否已成功删除。具体操作,请参见获取用户列表

权限管理

Lindorm搜索引擎中,权限分为三种(READ,WRITE,ADMIN),并且支持设置权限生效范围。

权限范围

说明

GOLBAL

  • READ:全局读权限。

  • WRITE:全局写权限。

  • ADMIN:全局所有权限。可以读写所有索引、对索引执行DDL操作,还拥有管理用户的权限。

TABLE

  • READ:索引读权限。

  • WRIET:索引写权限。

  • ADMIN:索引管理权限(创建、删除等DDL权限)。

管理用户权限

语法

POST _plugins/_security/api/user/<username>
重要

仅搜索引擎V3.8.3及以上版本支持POST请求,如何查看或升级当前版本,请参见搜索引擎版本说明升级小版本

参数说明

路径参数

username:需要赋予或收回权限用户。

请求体参数

参数

是否必填

说明

op

指定赋予或收回某一权限,格式为 "op": "<支持的取值>"。取值如下:

  • add:赋予权限。

  • revoke:收回权限。

scope

指定权限赋予或收回操作的生效范围。当前仅支持指定为GLOBAL,表示全局生效,格式为 "scope": "GLOBAL"。具体使用方式,请参见示例一

table

指定需要赋予或收回权限的索引,格式为"table": "<索引名>"。具体使用方式,请参见示例二

actions

要赋予或收回的权限,格式为"actions": ["<支持的取值>"]。取值如下:

  • READ:读。

  • WRITE:写。

  • ADMIN:索引管理权限。例如创建索引、删除索引、变更索引的mappings

具体使用方式,请参见示例

重要

scope参数和table参数均表示权限操作的生效范围,填写时仅填写其中一项。

示例

  • 示例一:为用户test赋予全局管理权限。

    POST _plugins/_security/api/user/test
    {
      "op": "add", 
      "permissions": {
        "scope": "GLOBAL",
        "actions": ["ADMIN"]
      }
    }
  • 示例二:为用户test赋予索引index1的读写权限。

    POST _plugins/_security/api/user/test
    {
      "op": "add", 
      "permissions": {
        "table": "index1",
        "actions": ["READ", "WRITE"]
      }
    }
  • 示例三:收回用户test对索引index1的读权限。

    POST _plugins/_security/api/user/test
    {
      "op": "revoke", 
      "permissions": {
        "table": "index1",
        "actions": ["READ"]
      }
    }

结果验证

您可以查看test用户的所有权限,验证目标权限是否成功授予或收回。具体操作,请参见获取指定用户详情