إدارة قواعد البيانات
مشابهة لمحركات قواعد البيانات التقليدية، يمكنك إنشاء قواعد بيانات في 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 أيضًا عمليات قاعدة البيانات وتضمن التوافق المتقدم. في واجهة برمجة التطبيقاتللأذونات (إضافة / إلغاء / عرض الأذونات)، يكون المصطلح قاعدة البيانات له المعاني التالية:
- إذا لم تحدد كل من اتصال Milvus واستدعاء واجهة برمجة التطبيقاتللأذونات
db_name
، تُشير قاعدة البيانات إلى قاعدة البيانات الافتراضية. - إذا حدد اتصال Milvus
db_name
، ولكن الاستدعاءات التالية لواجهة برمجة التطبيقات للأذونات لم تفعل، تُشير قاعدة البيانات إلى اسم قاعدة البيانات المحدد في الاتصال Milvus. - إذا تم إجراء استدعاء لواجهة برمجة التطبيقاتللأذونات على اتصال Milvus، بغض النظر عما إذا كان قد تم تحديد
db_name
، تشير قاعدة البيانات إلى اسم قاعدة البيانات المحدد في استدعاء واجهة برمجة التطبيقاتللأذونات.
تتم مشاركة مقتطف الشيفرة أدناه بين الكتل الخاصة به:
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 واستدعاء واجهة برمجة التطبيقاتللأذونات
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
، ولكن الاستدعاءات التالية لواجهة برمجة التطبيقاتللأذونات لم تفعل، تُشير قاعدة البيانات إلى اسم قاعدة البيانات المحدد في الاتصال 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)
- إذا تم إجراء استدعاء لواجهة برمجة التطبيقاتللأذونات على اتصال Milvus، بغض النظر عما إذا كان قد تم تحديد
db_name
، تشير قاعدة البيانات إلى اسم قاعدة البيانات المحدد في استدعاء واجهة برمجة التطبيقاتللأذونات.
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)