为用户授权

最近更新时间:2025-01-21 19:52:12

我的收藏

接口定义

grantToUser() 接口用于对用户授予指定资源的访问权限。
public BaseRes grantToUser(UserGrantParam param)

使用示例

如下示例,给用户 app_user 授予读取 db-0 下所有集合数据的权限,并具有数据库 db1 下 coll1 集合的读写权限。
// client 为 VectorDBClient() 创建的客户端对象
BaseRes res = client.grantToUser(UserGrantParam.newBuilder()
.withUser("app_user")
.withPrivileges(Arrays.asList(
PrivilegeParam.newBuilder().withResource("db0.*").withActions(Arrays.asList("read")).build(),
PrivilegeParam.newBuilder().withResource("db1.coll1").withActions(Arrays.asList("readWrite")).build())
).build());
System.out.println("grant user permission res: code:" + res.getCode() + ", msg: " + res.getMsg());
输出信息,如下所示:
grant user permission res: code:0, msg: Operation success

入参描述

参数名
参数含义
子参数
数据类型
是否必填
参数配置
User
需授权的用户名
-
string
长度要求:1~32字符。
字符类型要求:只能使用英文字母(大写 A~Z、小写 a~z)、数字(0~9)、下划线(_),并以英文字母开头。
Privileges
对用户授予的权限列表,可以配置多条权限
resource
string
指定用户可操作的资源对象,分为如下三个层级。
全局:对实例下的所有 DB 和 Collection 对象授权。配置方式:"resource": "*.*"
DB 层级:对某个 DB 授权,包括该 DB 下的所有Collection。配置方式: "resource": "db0.*",其中,db0 指授权的数据库名。
Collection 层级:对某个特定集合授权,包含集合下所有文档。配置方式为为"resource": "db0.test_coll"其中,db0 指授权的数据库名,test_coll 为授权的集合名。
说明:
resource 只能指向已存在的资源;若指定的资源不存在,则触发错误提示信息。
actions
array
配置资源对象允许操作的权限。
dbAdmin:允许执行创建(create)、删除(drop)、清空(truncate)等数据定义语言(DDL)操作。
read:仅限于执行查询(query)和搜索(search)等读取操作,禁止进行任何数据修改。
readWrite:允许执行查询(query)、搜索(search)等读取操作,以及插入(upsert)、更新(update)等写入操作。