管理用戶和角色
更新時間:
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")
文檔內容是否對您有幫助?