跳到主要内容

通过 SDK 管理身份凭证

除了在 Web 控制台上进行身份凭证管理,Zilliz Cloud 还支持通过 SDK 来管理。这种功能扩展极大地提高了灵活性,并比仅使用 Web 控制台提供了更多的自定义选项。

在 Zilliz Cloud 后端,存在以下三种内置角色选项:

  • db_admin:拥有对整个集群及其关联资源的完全控制权限。

  • db_rw:具有在集群内读取、写入及管理 Collection 和索引的权限。

  • db_ro:拥有查看集群资源的权限,但无法进行创建、修改或删除等操作。

有关更多集群内置角色信息,请参考集群内置角色

开始前

  • 您已经创建了一个集群。详情请参考创建集群

  • 您已经安装了适合您使用场景的 Milvus SDK。详情请参考安装 SDK

创建集群用户

要创建一个集群用户,请使用以下代码:

import json, os, time
from pymilvus import connections, Role, utility

# 0. Connect to cluster

CLUSTER_ENDPOINT="YOUR_CLUSTER_ENDPOINT" # Set your cluster endpoint
TOKEN="YOUR_CLUSTER_TOKEN" # Set your token

connections.connect(
alias='default',
# Public endpoint obtained from Zilliz Cloud
uri=CLUSTER_ENDPOINT,
# API key or a colon-separated cluster username and password
token=TOKEN,
)

# 1. Create user

if not 'user1' in utility.list_usernames():
utility.create_user(user='user1', password='P@ssw0rd!')
📘说明

密码将不会再次显示,请务必记下并妥善保存在安全的地方。

创建集群用户后,您可以使用该用户的用户名和密码连接到集群。请查看连接集群以了解更多详情。

更新用户凭证

要更新用户密码,请使用以下代码:

# 2. Update a user credential

utility.update_password(
user='user1',
old_password='P@ssw0rd!',
new_password='P@ssw0rd!!'
)

列出集群用户

要列出所有的集群用户:

# 3. List users

print(utility.list_usernames())

# Output
#
# ["db_admin", "user1"]

userInfo = utility.list_users(include_role_info=True)

users = [ { "user": u.username, "roles": list(u.roles) } for u in userInfo.groups ]

print(users)

# Output
#
# [
# {
# "user": "db_admin",
# "roles": [
# "db_admin"
# ]
# },
# {
# "user": "user1",
# "roles": []
# }
# ]

为集群用户分配角色

user1 分配 db_ro 角色:

# 4. Assign role

role = Role("db_ro") # Valid values: "db_admin", "db_rw", "db_ro"

role.add_user("user1")

# 5. Get users of a specific role

users = list(role.get_users())

print(users)

# Output
#
# ["user1"]

# 6. List roles

roleInfo = utility.list_roles(include_user_info=True)

roles = [ { "role": g.role_name, "users": list(g.users) } for g in roleInfo.groups ]

print(roles)

# Output
#
# [
# {
# "role": "db_admin",
# "users": [
# "db_admin"
# ]
# },
# {
# "role": "db_ro",
# "users": [
# "user1"
# ]
# },
# {
# "role": "db_rw",
# "users": []
# }
# ]

撤销用户角色

要从用户中撤销角色:

# 7. Remove role from user

role.remove_user("user1")

删除用户

如果某个用户不再需要,可以如下方式删除:

# 8. Delete user

utility.delete_user('user1')
📘说明

集群默认用户 db_admin 不支持删除。