การจัดการฐานข้อมูล
เหมือนกับเครื่องมือฐานข้อมูล传统 คุณสามารถสร้างฐานข้อมูลใน Milvus และกำหนดสิทธิ์ให้ผู้ใช้เฉพาะเพื่อจัดการเค้าโครงข้อมูล เหล่านี้จะได้รับอำนาจในการจัดการคอลเลกชันภายในฐานข้อมูล คลัสเตอร์ Milvus รองรับฐานข้อมูลได้สูงสุด 64 ฐานข้อมูล
การสร้างฐานข้อมูล
เพื่อสร้างฐานข้อมูล คุณต้องเชื่อมต่อกับคลัสเตอร์ Milvus และเตรียมชื่อก่อน:
from pymilvus import connections, db
conn = connections.connect(host="127.0.0.1", port=19530)
database = db.create_database("book")
การใช้งานฐานข้อมูล
คลัสเตอร์ Milvus มาพร้อมกับฐานข้อมูลเริ่มต้นที่มีชื่อ "default" หากไม่ระบุเป็นอย่างอื่น คอลเลกชันจะถูกสร้างในฐานข้อมูลเริ่มต้น
เพื่อเปลี่ยนฐานข้อมูลเริ่มต้น ทำตามขั้นตอนนี้:
db.using_database("book")
คุณยังสามารถตั้งค่าฐานข้อมูลที่จะใช้เมื่อเชื่อมต่อกับคลัสเตอร์ Milvus ดังตัวอย่างนี้:
conn = connections.connect(
host="127.0.0.1",
port="19530",
db_name="default"
)
รายการฐานข้อมูล
เพื่อเรียกดูฐานข้อมูลทั้งหมดที่มีในคลัสเตอร์ Milvus ทำตามขั้นตอนนี้:
db.list_database()
['default', 'book']
การลบฐานข้อมูล
เพื่อลบฐานข้อมูล คุณจำเป็นต้องลบคอลเลกชันทั้งหมดของฐานข้อมูลก่อน ไม่งั้นการลบจะล้มเหลว
db.drop_database("book")
db.list_database()
['default']
การใช้ RBAC ในฐานข้อมูล
RBAC ยังครอบคลุมการดำเนินการฐานข้อมูลและให้ความเข้ากันได้กับเวอร์ชันล่วงหน้า ใน API สิทธิ์ (Grant / Revoke / List Grant) ที่ระบุให้ คำว่า ฐานข้อมูล มีความหมายต่อไปนี้:
- หากทั้งการเชื่อมต่อ Milvus และการเรียกใช้ API สิทธิ์ไม่ระบุ
db_name
ฐานข้อมูล จะหมายถึง ฐานข้อมูลเริ่มต้น - หากการเชื่อมต่อ Milvus ระบุ
db_name
แต่การเรียกใช้งาน API สิทธิ์ไม่ระบุ ฐานข้อมูล จะหมายถึงชื่อฐานข้อมูลที่ระบุในการเชื่อมต่อ Milvus - หากมีการเรียกใช้งาน API สิทธิ์บนการเชื่อมต่อ Milvus ไม่ว่าจะระบุ
db_name
หรือไม่ ฐานข้อมูล จะหมายถึงชื่อฐานข้อมูลที่ระบุในการเรียกใช้งาน API สิทธิ์
โค้ดตัวอย่างด้านล่างนี้ถูกแชร์ระหว่างบล็อคด้านล่างนี้.
from pymilvus import connections, Role
_HOST = '127.0.0.1'
_PORT = '19530'
_ROOT = "root"
_ROOT_PASSWORD = "Milvus"
_ROLE_NAME = "test_role"
_PRIVILEGE_INSERT = "insert"
def connect_to_milvus(db_name="default"):
print(f"เชื่อมต่อกับ Milvus\n")
connections.connect(host=_HOST, port=_PORT, user=_ROOT, password=_ROOT_PASSWORD, db_name=db_name)
- หากทั้งการเชื่อมต่อ Milvus และการเรียกใช้ API สิทธิ์ไม่ระบุ
db_name
ฐานข้อมูล จะหมายถึง ฐานข้อมูลเริ่มต้น.
connect_to_milvus()
role = Role(_ROLE_NAME)
role.create()
connect_to_milvus()
role.grant("Collection", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Collection", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)
- หากการเชื่อมต่อ Milvus ระบุ
db_name
แต่การเรียกใช้งาน API สิทธิ์ไม่ระบุ ฐานข้อมูล จะหมายถึงชื่อฐานข้อมูลที่ระบุในการเชื่อมต่อ Milvus.
connect_to_milvus(db_name="foo")
role.grant("Collection", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Collection", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)
- หากมีการเรียกใช้งาน API สิทธิ์บนการเชื่อมต่อ Milvus ไม่ว่าจะระบุ
db_name
หรือไม่ ฐานข้อมูล จะหมายถึงชื่อฐานข้อมูลที่ระบุในการเรียกใช้งาน API สิทธิ์.
db_name = "foo"
connect_to_milvus()
role.grant("Collection", "*", _PRIVILEGE_INSERT, db_name=db_name)
print(role.list_grants(db_name=db_name))
print(role.list_grant("Collection", "*", db_name=db_name))
role.revoke("Global", "*", _PRIVILEGE_INSERT, db_name=db_name)