ڈیٹابیسوں کا انتظام

رایج ڈیٹابیس انجنوں کی طرح، آپ ملوس میں ڈیٹابیس بنا سکتے ہیں اور مخصوص صارفین کو انہیں منظر عام پر لانے کا اختیار دے سکتے ہیں۔ یہ صارفین پھر سرکشی کے لئے ڈیٹابیس کے اندرجات کے انتظام کا اختیار حاصل کریں گے۔ ملوس کلسٹر 64 ڈیٹابیسوں تک کا انمول دوری اختیار کرتا ہے۔

ڈیٹابیس بنانا

ڈیٹابیس بنانے کے لئے، آپ کو پہلے ملوس کلسٹر سے رابطہ کرنا ہوگا اور ایک نام تیار کرنا ہوگا:

from pymilvus import connections, db

conn = connections.connect(host="127.0.0.1", port=19530)

database = db.create_database("book")

ڈیٹابیس استعمال کرنا

ملوس کلسٹر کا ایک پہلے سے موجود ڈیٹابیس "default" ہوتا ہے۔ جب تک مخصوص نہ ہو، تو جمع کا نام ڈیفالٹ ڈیٹابیس میں بنایا جائے گا۔

ڈیفالٹ ڈیٹابیس بدلنے کے لئے مندرجہ ذیل مراحل کا پیرو:

db.using_database("book")

آپ ملوس کلسٹر سے رابطہ کرتے وقت استعمال کرنے والی ڈیٹابیس بھی منتخب کرسکتے ہیں، جیسے نیچے دینے والی مثال میں ہے:

conn = connections.connect(
    host="127.0.0.1",
    port="19530",
    db_name="default"
)

ڈیٹابیسوں کی فہرست بنانا

ملوس کلسٹر میں موجود تمام ڈیٹابیس حاصل کرنے کے لئے مندرجہ ذیل مراحل کا پیرو:

db.list_database()

['default', 'book']

ایک ڈیٹابیس حذف کرنا

ایک ڈیٹابیس کو حذف کرنے کے لئے، پہلے آپ کو تمام اس کے جمع حذف کرنے ہوں گے۔ ورنہ حذف ناممکن ہوگا۔

db.drop_database("book")

db.list_database()

['default']

ڈیٹابیس میں RBAC کا استعمال

RBAC بھی ڈیٹابیس عملیاتوں کو شامل کرتا ہے اور اگلے سرکاریت کی مطابقت کو یقینی بناتا ہے۔ اجازت API (دینا / واپس لینا / فہرست اجازت دینا) میں لفظ ڈیٹابیس مندرجہ ذیل معانی رکھتا ہے:

  • اگر ملوس رابطہ اور اجازت API کا کوئی کال db_name مخصوص نہ کریں تو، ڈیٹابیس ڈیفالٹ ڈیٹابیس کو ظاہر کرتا ہے۔
  • اگر ملوس رابطہ db_name مخصوص کرتا ہے، لیکن بعد کے اجازت API کالز نہ کریں تو، ڈیٹابیس ملوس رابطہ میں مخصوص کردہ ڈیٹابیس نام کو ظاہر کرتا ہے۔
  • اگر اجازت API کال ملوس رابطہ پر ہو گی، چاہے 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"ملوس سے رابطہ کر رہے ہیں\n")
    connections.connect(host=_HOST, port=_PORT, user=_ROOT, password=_ROOT_PASSWORD, db_name=db_name)

  • اگر ملوس رابطہ اور اجازت 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)

  • اگر ملوس رابطہ db_name مخصوص کرتا ہے، لیکن بعد کے اجازت API کالز نہ کریں تو، ڈیٹابیس ملوس رابطہ میں مخصوص کردہ ڈیٹابیس نام کو ظاہر کرتا ہے۔
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 کال ملوس رابطہ پر ہو گی، چاہے 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)