接口定义
GrantToUser() 接口用于对用户授予指定资源的访问权限。
GrantToUser(ctx context.Context, param GrantToUserParams) error
使用示例
如下示例,给用户 app_user 授予读取 db-0 下所有集合数据的权限,并具有数据库 db1 下 coll1 集合的读写权限。
import ("context""log""github.com/tencent/vectordatabase-sdk-go/tcvectordb""github.com/tencent/vectordatabase-sdk-go/tcvectordb/api/user")var (ctx = context.Background()database = "db0"database1 = "db1"collectionName = "coll1")err := client.GrantToUser(ctx, tcvectordb.GrantToUserParams{User: "app_user",Privileges: []*user.Privilege{{Resource: database + ".*",Actions: []string{"read"},},{Resource: database + "." + collectionName,Actions: []string{"readWrite"},},}})if err != nil {log.Printf("grant to user failed, err: %+v", err.Error())}
入参描述
参数名 | 参数含义 | 子参数 | 数据类型 | 是否必填 | 参数配置 |
User | 需授权的用户名 | - | string | 是 | 长度要求:1~32字符。 字符类型要求:只能使用英文字母(大写 A~Z、小写 a~z)、数字(0~9)、下划线(_),并以英文字母开头。 说明: root 用户享有最高权限级别,无法被任何账号(包括其自身)删除或修改其权限。 |
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)等写入操作。 |