管理用户和角色
更新时间:
Milvus通过支持基于角色的访问控制(Role-Based Access Control, RBAC)实现数据库的精细化权限管理。管理员可以创建多种角色并分配相应的权限,然后将这些角色授予不同的用户。当权限需要调整时,管理员只需修改角色权限而无需单独配置每个用户,确保了权限管理的高效性和安全性。
前提条件
已在本地客户端成功安装了PyMilvus库,并将其更新至当前最新版本。
如果您尚未在本地客户端安装PyMilvus库,或者需要将其更新至当前最新版本,您可以执行以下命令。
pip install --upgrade pymilvus
已创建Milvus实例,请参见详情快速创建Milvus实例。
已连接Milvus实例。详细代码如下所示。
from pymilvus import MilvusClient, Role client = MilvusClient( uri="http://c-xxxx.milvus.aliyuncs.com:19530", # Milvus实例的公网地址。 token="<yourUsername>:<yourPassword>", # 登录Milvus实例的用户名和密码。 db_name="default" # 待连接的数据库名称,本文示例为默认的default。 )
创建用户
# 定义新用户的名称和密码。本示例用户名为user_milvus。
client.create_user(user_name="user_milvus", password="<yourPassword>")
您还进行以下操作:
更新用户密码
client.update_password( user_name="user_milvus", old_password="<yourPassword>", new_password="<yourNewPassword>" )
查看所有用户
client.list_users()
查看用户角色
client.describe_user(user_name="user_milvus")
查看所有用户角色
client.list_roles()
创建角色
client.create_role(role_name="role_milvus") # 定义新角色的名称。本示例为role_milvus。
角色授权
read_only_privileges = [
{"object_type": "Global", "object_name": "*", "privilege": "DescribeCollection"},
{"object_type": "Global", "object_name": "*", "privilege": "ShowCollections"},
{"object_type": "Collection", "object_name": "*", "privilege": "Search"},
{"object_type": "Collection", "object_name": "*", "privilege": "Query"},
]
for item in read_only_privileges:
client.grant_privilege(
role_name="role_milvus",
object_type=item["object_type"],
privilege=item["privilege"],
object_name=item["object_name"]
)
为用户绑定角色
client.grant_role(user_name="user_milvus", role_name="role_milvus")
回收用户角色
client.revoke_role(user_name="user_milvus", role_name="role_milvus")
文档内容是否对您有帮助?