milvus-logo
LFAI
首页
  • 概念

用户和角色

本主题概述 Milvus 中基于角色的访问控制(RBAC),详细说明用户、角色、对象和权限之间的定义和关系。

下图说明了对象、权限、角色和用户之间的关系。

users_and_roles 用户和角色

关键概念

要管理 Milvus 资源的访问控制,必须了解 RBAC 的关键组成部分:对象类型、对象名称、用户、角色和权限。

  • 对象类型:分配权限的对象类别。对象类型可以是

    • Global:全系统对象,允许用户执行影响所有集合、用户或全系统设置的操作。
    • Collection:特定集合对象:允许用户在特定集合内执行创建索引、加载数据、插入或删除数据以及查询数据等操作。
    • User:与用户管理相关的对象,允许用户管理数据库用户的凭证和角色,如更新用户凭证或查看用户详细信息。
  • 对象名称:要控制访问的对象的具体名称。例如

    • 如果对象类型为Global ,则必须将对象名称设置为通配符 (*),表示指定类型的所有对象。
    • 如果对象类型是Collection ,对象名称就是一个集合的名称。
    • 如果对象类型为User ,对象名称就是数据库用户的名称。
  • 用户:与 Milvus 交互的个人或应用程序,由用户名和相应密码组成。

  • 权限:定义可执行的操作和可访问的资源。权限不直接授予用户,而是分配给角色。

  • 角色:定义用户对某些对象所拥有的一系列权限。角色一旦与用户绑定,用户就会继承授予该角色的所有权限。

举例说明:授予权限

下面的代码片段展示了如何在特定集合上向角色授予CreateIndex 权限:

milvusClient.grant_privilege(
    role_name="CUSTOM_ROLE_NAME",
    object_type="Collection",  # Valid value: Global, Collection or User.
    privilege="CreateIndex",   # See the table below for valid privilege names and relevant API descriptions.
    object_name="YOUR_COLLECTION_NAME"  # The name of the collection to grant access to. Use "*" to grant access to all collections.
)
GrantPrivilegeReq grantPrivilegeReq = GrantPrivilegeReq.builder()
        .roleName("roleName")
        .objectName("CollectionName") // The name of the collection to grant access to. Use "*" to grant access to all collections.
        .objectType("Collection") // Valid value: Global, Collection or User.
        .privilege("CreateIndex") // See the table below for valid privilege names and relevant API descriptions.
        .build();
client.grantPrivilege(grantPrivilegeReq);
milvusClient.grantPrivilege({
   roleName: 'roleName',
   object: 'Collection',  // Valid value: Global, Collection or User.
   objectName: 'CollectionName', // The name of the collection to grant access to. Use "*" to grant access to all collections.
   privilegeName: 'CreateIndex' // See the table below for valid privilege names and relevant API descriptions.
 })

要获取权限相关 API 的更多信息,请参阅grant_privilegerevoke _ privilege

要获取权限相关 API 的更多信息,请参阅grantPrivilegerevokePrivilege

要获取权限相关 API 的更多信息,请参阅grantPrivilegerevokePrivilege

默认用户和角色

Milvus 默认创建一个root 用户,默认密码为Milvusroot 用户被授予admin 权限,这意味着该root 用户可以访问所有资源并执行所有操作。

如果用户与public 角色相关联,则有权获得以下权限:

  • DescribeCollection
  • ShowCollections
  • IndexDetail

对象类型和权限列表

下表列出了启用 RBAC 时可以选择的值。

对象类型权限名称客户端相关 API 说明
收藏创建索引创建索引
集合下拉索引下拉索引
集合索引详情DescribeIndex/GetIndexState/GetIndexBuildProgress
采集加载载入集合/获取载入进度/获取载入状态
收集获取加载进度获取加载进度
集合获取加载状态获取加载状态
采集释放释放集合
收藏插入插入
收藏删除删除
收藏插入插入
收藏搜索搜索
收藏冲洗冲洗/获取冲洗状态
收藏获取冲洗状态获取冲洗状态
集合查询查询
采集获取统计信息获取收藏统计信息
采集压缩压缩
采集导入批量输入/导入
收集负载平衡负载平衡
集合创建分区创建分区
数据集删除分区删除分区
收藏显示分区显示分区
集合具有分区有分区
全局全局该表中的所有 API 操作权限
全局创建数据集创建集合
全局删除收藏下拉菜单
全局描述收藏集描述集合
全局显示收藏集显示收藏集
全局重命名收藏集重命名收藏集
全局全部清除全部清除
全局创建所有者创建用户 创建角色
全局删除所有权删除凭证 删除角色
全局选择所有权选择角色/选择授权
全局管理所有权操作用户角色 操作权限
全局创建资源组创建资源组
全局删除资源组下拉资源组
全局描述资源组描述资源组
全局列出资源组列出资源组
全局传输节点传输节点
全局传输复制传输复制
全局创建数据库创建数据库
全局删除数据库删除数据库
全局列出数据库列表数据库
全局创建别名创建别名
全局删除别名删除别名
全局描述别名描述别名
全局列出别名列出参数
用户更新用户更新证书
用户选择用户选择用户
  • 对象和权限名称区分大小写。
  • 要向某类对象(如集合、全局、用户)授予所有权限,请在权限名称中使用 "*"。
  • 全局对象的权限名称 "*"不包括所有权限,因为所有权限包括所有权限,包括任何集合和用户对象。
  • 下一步

    翻译自DeepLogo

    反馈

    此页对您是否有帮助?