Veritabanlarını Yönetme
Geleneksel veritabanı motorlarına benzer şekilde, Milvus'ta veritabanları oluşturabilir ve belirli kullanıcılara bunları yönetme izni verebilirsiniz. Bu kullanıcılar daha sonra bu veritabanları içindeki koleksiyonları yönetme yetkisine sahip olacaktır. Milvus kümesi 64 veritabanını destekler.
Veritabanı Oluşturma
Bir veritabanı oluşturmak için öncelikle Milvus kümesine bağlanmalı ve bir isim belirlemelisiniz:
from pymilvus import connections, db
conn = connections.connect(host="127.0.0.1", port=19530)
database = db.create_database("kitap")
Bir Veritabanı Kullanma
Milvus kümesi, "default" adında varsayılan bir veritabanıyla birlikte gelir. Aksi belirtilmedikçe, koleksiyonlar varsayılan veritabanında oluşturulacaktır.
Varsayılan veritabanını değiştirmek için şu adımları izleyin:
db.using_database("kitap")
Ayrıca aşağıdaki gibi Milvus kümesine bağlanırken kullanılacak veritabanını belirleyebilirsiniz:
conn = connections.connect(
host="127.0.0.1",
port="19530",
db_name="default"
)
Veritabanlarını Listeleme
Milvus kümesindeki mevcut tüm veritabanlarını almak için şu adımları izleyin:
db.list_database()
['default', 'kitap']
Bir Veritabanını Silme
Bir veritabanını silmek için öncelikle tüm koleksiyonlarını silmelisiniz. Aksi takdirde silme işlemi başarısız olacaktır.
db.drop_database("kitap")
db.list_database()
['default']
Veritabanında RBAC Kullanımı
RBAC, veritabanı işlemlerini de kapsar ve gelecekteki uyumluluğu sağlar. İzin API'sinde (Ver / Geri Al / İzinleri Listele) veritabanı terimi aşağıdaki anlamlara gelir:
- Hem Milvus bağlantısı hem de İzin API çağrısı
db_name
belirtmezse, veritabanı varsayılan veritabanını ifade eder. - Milvus bağlantısı
db_name
belirtiyorsa, ancak sonraki İzin API çağrıları belirtmiyorsa, veritabanı Milvus bağlantısında belirtilen veritabanı adını ifade eder. - Bir İzin API çağrısı Milvus bağlantısında yapıldığında,
db_name
belirtilmiş olsa da olmasa da, veritabanı İzin API çağrısında belirtilen veritabanı adını ifade eder.
Aşağıdaki kod parçacığı aşağıdaki bloklar arasında paylaşılır.
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'a bağlanılıyor\n")
connections.connect(host=_HOST, port=_PORT, user=_ROOT, password=_ROOT_PASSWORD, db_name=db_name)
- Hem Milvus bağlantısı hem de İzin API çağrısı
db_name
belirtmezse, veritabanı varsayılan veritabanını ifade eder.
connect_to_milvus()
role = Role(_ROLE_NAME)
role.create()
connect_to_milvus()
role.grant("Koleksiyon", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Koleksiyon", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)
- Milvus bağlantısı
db_name
belirtiyorsa, ancak sonraki İzin API çağrıları belirtmiyorsa, veritabanı Milvus bağlantısında belirtilen veritabanı adını ifade eder.
connect_to_milvus(db_name="foo")
role.grant("Koleksiyon", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Koleksiyon", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)
- Bir İzin API çağrısı Milvus bağlantısında yapıldığında,
db_name
belirtilmiş olsa da olmasa da, veritabanı İzin API çağrısında belirtilen veritabanı adını ifade eder.
db_name = "foo"
connect_to_milvus()
role.grant("Koleksiyon", "*", _PRIVILEGE_INSERT, db_name=db_name)
print(role.list_grants(db_name=db_name))
print(role.list_grant("Koleksiyon", "*", db_name=db_name))
role.revoke("Global", "*", _PRIVILEGE_INSERT, db_name=db_name)