مدیریت پایگاهدادهها
مانند موتورهای پایگاهداده سنتی، میتوانید در 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 مجوزها (اعطا / لغو / لیست اعطا)، واژه پایگاهداده به معانی زیر استفاده میشود:
- اگر هر دو اتصال 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)