您的位置:首页 > 文旅 > 旅游 > 百度竞价排名叫什么_十大seo公司_百度问答_优化百度seo技术搜索引擎

百度竞价排名叫什么_十大seo公司_百度问答_优化百度seo技术搜索引擎

2025/4/3 10:51:57 来源:https://blog.csdn.net/fenglingguitar/article/details/143420634  浏览:    关键词:百度竞价排名叫什么_十大seo公司_百度问答_优化百度seo技术搜索引擎
百度竞价排名叫什么_十大seo公司_百度问答_优化百度seo技术搜索引擎

本文介绍了 Milvus 中的基于角色的访问控制(RBAC)机制,详细说明了 RBAC 的关键组成部分,包括用户、角色、对象和权限之间的关系,以及如何通过角色管理资源访问权限。

1. 概念概述

在 Milvus 中实现资源访问控制时,了解 RBAC 的关键概念非常重要。这些概念包括对象类型、对象名称、用户、角色和权限。

对象类型

对象类型是指被授予权限的对象类别,主要有以下几种:

  • Global:全局对象,允许用户执行影响所有集合、用户或全系统设置的操作。
  • Collection:特定集合对象,允许用户在特定集合内执行创建索引、插入数据、查询等操作。
  • User:与用户管理相关的对象,允许用户管理数据库用户的凭证和角色,如更新用户凭证或查看用户详细信息。

对象名称

对象名称用于指定具体的访问对象。对象名称的规则如下:

  • 若对象类型为 Global,对象名称应设为通配符 *,表示所有该类型的对象。
  • 若对象类型为 Collection,对象名称为集合的具体名称。
  • 若对象类型为 User,对象名称为数据库用户的名称。

用户

用户是与 Milvus 交互的个人或应用程序,需提供用户名和密码。用户无法直接获得权限,而是通过分配的角色继承权限。

权限

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

角色

角色是权限的集合,用于定义用户对某些对象所拥有的权限。当角色分配给用户时,该用户就继承了该角色的所有权限。

2. 实例:授予角色权限

以下是一些具体的权限授予实例,帮助更好地理解如何通过代码控制权限。

实例 1:授予用户对所有集合的查询权限

假设有一个角色 DataAnalyst,我们希望该角色能够对所有集合执行查询操作。代码如下:

milvusClient.grant_privilege(role_name="DataAnalyst",object_type="Collection",  privilege="Query",       object_name="*"  # 使用通配符 "*" 表示所有集合
)

实例 2:授予用户对单个集合的插入和删除权限

假设一个角色 Editor 需要对某个特定集合 UserCollection 执行插入和删除操作:

# 授予插入权限
milvusClient.grant_privilege(role_name="Editor",object_type="Collection",  privilege="Insert",        object_name="UserCollection"
)# 授予删除权限
milvusClient.grant_privilege(role_name="Editor",object_type="Collection",  privilege="Delete",        object_name="UserCollection"
)

实例 3:授予用户对全系统的管理权限

假设一个角色 AdminManager 需要具备对所有用户和角色进行管理的权限。此时,我们可以针对全局对象设置如下权限:

# 授予创建角色权限
milvusClient.grant_privilege(role_name="AdminManager",object_type="Global",privilege="CreateRole",object_name="*"
)# 授予删除角色权限
milvusClient.grant_privilege(role_name="AdminManager",object_type="Global",privilege="DeleteRole",object_name="*"
)# 授予管理用户权限
milvusClient.grant_privilege(role_name="AdminManager",object_type="User",privilege="UpdateUser",object_name="*"
)

在 Milvus 的 RBAC 体系中,并没有直接的“组”的概念,但可以通过将用户与角色绑定来实现类似组的权限管理。通过将用户分配给特定角色,可以实现将用户加入“组”的效果,因为角色定义了可以访问的对象和权限。

将用户加入角色的步骤

以下是将用户加入某个角色的步骤和示例代码:

  1. 创建角色(如果角色尚未存在):
    先创建一个角色,可以理解为创建一个“组”。该角色将包含一组权限。

    milvusClient.create_role(role_name="DataAnalyst")
    
  2. 授予角色权限
    为这个角色授予所需权限。可以通过 grant_privilege 方法将权限赋予角色,以定义“组”的权限。

    milvusClient.grant_privilege(role_name="DataAnalyst",object_type="Collection",privilege="Query",object_name="*"
    )
    
  3. 将用户添加到角色
    将用户分配到指定角色,让用户继承该角色的权限。这相当于将用户加入“组”中。

    milvusClient.add_user_to_role(username="user123",role_name="DataAnalyst"
    )
    

注意事项

  • 一个用户可以绑定多个角色:如果用户需要多个“组”的权限,可以将用户添加到多个角色。

  • 角色的权限继承:用户加入角色后,会自动继承该角色所拥有的权限。

  • 删除用户与角色的绑定:如果需要移除用户的某些权限,可以使用 remove_user_from_role 方法解除用户与角色的绑定:

    milvusClient.remove_user_from_role(username="user123",role_name="DataAnalyst"
    )
    

通过这些步骤,您可以灵活地将用户添加到不同的角色中,实现分组管理的效果。

3. 默认用户和角色

Milvus 默认创建了一个 root 用户,默认密码为 Milvus。该用户拥有 admin 权限,可以访问所有资源并执行所有操作。

如果用户被分配了 public 角色,则可以获得以下权限:

  • DescribeCollection
  • ShowCollections
  • IndexDetail

4. 对象类型和权限列表

启用 RBAC 后,可为不同对象类型指定的权限如下表所示。

对象类型权限名称客户端相关 API 说明
CollectionCreateIndex创建索引
CollectionDropIndex删除索引
CollectionIndexDetailDescribeIndex/GetIndexState/GetIndexBuildProgress
CollectionLoad加载集合/获取加载进度/获取加载状态
CollectionInsert插入
CollectionDelete删除
CollectionSearch搜索
CollectionFlush冲洗/获取冲洗状态
CollectionQuery查询
CollectionGetStatistics获取集合统计信息
CollectionCompact压缩
CollectionImport批量导入
CollectionBalanceLoad负载平衡
GlobalAll APIs拥有所有 API 操作权限
GlobalCreateCollection创建集合
GlobalDropCollection删除集合
GlobalDescribeCollection描述集合
GlobalListCollections显示集合
GlobalClearAll清除所有数据
GlobalCreateRole创建角色
GlobalDeleteRole删除角色
UserUpdateUser更新用户凭证
UserSelectUser查询用户信息

**注意:**对象和权限名称区分大小写。若希望向某类对象(如集合、全局、用户)授予所有权限,可在权限名称中使用 "*"

5. 小结

Milvus 的 RBAC 机制通过用户、角色、对象和权限的关系,实现了灵活且高效的访问控制。RBAC 机制不仅支持对集合和全局对象的管理,还支持细化到具体的用户管理。在实践中,通过合理的角色划分和权限配置,可以确保 Milvus 资源的安全性和高效性。

通过本文,您已了解了 RBAC 的基本结构以及在 Milvus 中如何实现基于角色的权限管理。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com