🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
الصفحة الرئيسية
  • دليل الإدارة
  • Home
  • Docs
  • دليل الإدارة

  • الأمن

  • تمكين RBAC

  • مجموعة الامتيازات

إنشاء مجموعة امتيازات

لتبسيط عملية منح الامتيازات، يوصى بدمج امتيازات متعددة في مجموعة امتيازات.

مجموعة الامتيازات مقابل الامتيازات

تتكون مجموعة الامتيازات من امتيازات متعددة.

Privilege group illustrated توضيح مجموعة الامتيازات

كما هو موضح في الشكل أعلاه، لنفترض أنك بحاجة إلى منح ثلاثة امتيازات مختلفة لدور ما.

  • إذا كنت لا تستخدم مجموعة امتيازات، فأنت بحاجة إلى منح الامتيازات ثلاث مرات.

  • أما إذا كنت تستخدم مجموعة امتيازات، فأنت بحاجة فقط إلى إنشاء مجموعة امتيازات وإضافة الامتيازات الثلاثة إلى مجموعة الامتيازات هذه ومنح مجموعة الامتيازات للدور أ.

باستخدام مجموعة امتيازات، يمكنك منح امتيازات متعددة بشكل مجمّع لدور ما.

مجموعات امتيازات مدمجة

لسهولة الاستخدام، يوفر Milvus ما مجموعه 9 امتيازات مدمجة على مستوى المجموعة وقاعدة البيانات والمثيل: COLL_RO، COLL_RW، COLL_RW، COLL_ADMIN، DB_RO، DB_RW، DB_Admin، Cluster_RO، Cluster_RW، Cluster_RW، Cluster_Admin.

لا توجد علاقة تعاقبية بين المستويات الثلاثة لمجموعات الامتيازات المضمنة. لا يؤدي تعيين مجموعة امتيازات على مستوى المثيل إلى تعيين الأذونات تلقائيًا لجميع قواعد البيانات والمجموعات ضمن هذا المثيل. يجب تعيين الامتيازات على مستوى قاعدة البيانات والمجموعات يدويًا.

توضح الجداول التالية الامتيازات المتضمنة في كل مجموعة امتيازات مضمنة.

مستوى المجموعة

  • COLL_RO: يتضمن امتيازات لقراءة بيانات المجموعة.

  • COLL_RW: يتضمن امتيازات لقراءة بيانات المجموعة وكتابتها

  • COLL_ADMIN: يتضمن امتيازات لقراءة بيانات المجموعة وكتابتها وإدارة المجموعات.

يسرد الجدول أدناه الامتيازات المحددة المضمنة في مجموعات الامتيازات المضمنة الثلاث على مستوى المجموعة.

الامتيازات

قراءة المجموعةReadOnly

مجموعة القراءة والكتابة للمجموعة

إدارة المجموعات

استعلام

✔️

✔️

✔️

بحث

✔️

✔️

✔️

فهرسالتفصيل

✔️

✔️

✔️

GetFlushState

✔️

✔️

✔️

الحصول على حالة التحميل

✔️

✔️

✔️

GetLoadingProgress

✔️

✔️

✔️

لديه قسم

✔️

✔️

✔️

إظهار الأقسام

✔️

✔️

✔️

ListAliases

✔️

✔️

✔️

وصف المجموعة

✔️

✔️

✔️

وصف الخواص

✔️

✔️

✔️

الحصول على إحصائيات

✔️

✔️

✔️

إنشاء فهرس

✔️

✔️

إسقاط الفهرس

✔️

✔️

إنشاء قسم

✔️

✔️

إسقاط قسم

✔️

✔️

تحميل

✔️

✔️

الإصدار

✔️

✔️

إدراج

✔️

✔️

حذف

✔️

✔️

حذف

✔️

✔️

الاستيراد

✔️

✔️

تدفق

✔️

✔️

الضغط

✔️

✔️

موازنة الأحمال

✔️

✔️

إنشاء تعريفا

✔️

إسقاط اسم مستعار

✔️

مستوى قاعدة البيانات

  • DB_RO: يتضمن امتيازات لقراءة بيانات قاعدة البيانات

  • DB_RW: يتضمن امتيازات لقراءة وكتابة بيانات قاعدة البيانات

  • DB_Admin: يتضمن امتيازات لقراءة وكتابة بيانات قاعدة البيانات وإدارة قواعد البيانات.

يسرد الجدول أدناه الامتيازات المحددة المضمنة في مجموعات الامتيازات الثلاثة المضمنة على مستوى قاعدة البيانات.

الامتيازات

DatabaseReadReadOnly

DatabaseReadReadWrite

إدارة قاعدة البيانات

إظهار المجموعات

✔️

✔️

✔️

وصف قاعدة البيانات

✔️

✔️

✔️

إنشاء مجموعة

✔️

إسقاط مجموعة

✔️

تغيير قاعدة البيانات

✔️

✔️

مستوى المجموعة

  • Cluster_RO: يتضمن امتيازات لقراءة بيانات المثيل

  • Cluster_RW: يتضمن امتيازات لقراءة وكتابة بيانات المثيل

  • Cluster_Admin: يتضمن امتيازات لقراءة وكتابة بيانات المثيل وإدارة المثيلات.

يسرد الجدول أدناه الامتيازات المحددة المضمنة في مجموعات الامتيازات الثلاثة المضمنة على مستوى المثيل.

الامتيازات

ClusterReadOnly

ClusterReadWrite

إدارة المجموعة

سرد قواعد البيانات

✔️

✔️

✔️

إعادة تسمية المجموعة

✔️

إنشاء ملكية

✔️

تحديث المستخدم

✔️

إسقاط الملكية

✔️

حدد الملكية

✔️

✔️

✔️

إدارة الملكية

✔️

حدد المستخدم

✔️

✔️

✔️

BackupRBAC

✔️

استرجاعRRBAC

✔️

إنشاءResourceGroup

✔️

إسقاط مجموعة الموارد

✔️

تحديثResourceResourceGroups

✔️

✔️

وصفمجموعات الموارد

✔️

✔️

✔️

ListResourceGroups

✔️

✔️

✔️

TransferNode

✔️

✔️

نقل نسخة طبق الأصل

✔️

✔️

إنشاء قاعدة بيانات

✔️

إسقاط قاعدة البيانات

✔️

فلوش الكل

✔️

✔️

إنشاء مجموعة الامتيازات

✔️

إسقاط مجموعة الامتيازات

✔️

ListPrivileGroups

✔️

تشغيلPrivilePrivileGroup

✔️

الإجراءات

يمكنك إنشاء مجموعة امتيازات ثم إضافة امتيازات إلى مجموعة الامتيازات.

إنشاء مجموعة امتيازات

يوضح المثال التالي كيفية إنشاء مجموعة امتيازات باسم privilege_group_1.

from pymilvus import MilvusClient
client.create_privileg_group(group_name='privilege_group_1'
import io.milvus.v2.service.rbac.request.CreatePrivilegeGroupReq;

client.createPrivilegeGroup(CreatePrivilegeGroupReq.builder()
        .groupName("privilege_group_1")
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.CreatePrivilegeGroup(context.Background(), "privilege_group_1")

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "privilegeGroupName":"privilege_group_1"
}'

إضافة امتيازات إلى مجموعة امتيازات

يوضح المثال التالي كيفية إضافة الامتيازات PrivilegeBackupRBAC و PrivilegeRestoreRBAC إلى مجموعة الامتيازات privilege_group_1 التي تم إنشاؤها للتو.

from pymilvus import MilvusClient
client.add_privileges_to_group(group_name='privilege_group_1', privileges=['Query', 'Search'])

import io.milvus.v2.service.rbac.request.AddPrivilegesToGroupReq;

client.addPrivilegesToGroup(AddPrivilegesToGroupReq.builder()
        .groupName("privilege_group_1")
        .privileges(Arrays.asList("Query", "Search"))
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.AddPrivilegesToGroup(context.Background(), "privilege_group_1", []string{"Query", "Search"})

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/add_privileges_to_group" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "privilegeGroupName":"privilege_group_1",
    "privileges":["Query", "Search"]
}'

إزالة امتيازات من مجموعة امتيازات

يوضح المثال التالي كيفية إزالة الامتياز PrivilegeRestoreRBAC من مجموعة الامتيازات privilege_group_1.

from pymilvus import MilvusClient
client.remove_privileges_from_group(group_name='privilege_group_1', privileges='Search')

import io.milvus.v2.service.rbac.request.RemovePrivilegesFromGroupReq;

client.removePrivilegesFromGroup(RemovePrivilegesFromGroupReq.builder()
        .groupName("privilege_group_1")
        .privileges(Collections.singletonList("Search"))
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.RemovePrivilegesFromGroup(context.Background(), "privilege_group_1", []string{"Search"})

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/remove_privileges_from_group" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "privilegeGroupName":"privilege_group_1",
    "privileges":["Search"]
}'

سرد مجموعات الامتيازات

يوضح المثال التالي كيفية سرد كافة مجموعات الامتيازات الموجودة.

from pymilvus import MilvusClient
client.list_privilege_groups()

import io.milvus.v2.service.rbac.PrivilegeGroup;
import io.milvus.v2.service.rbac.request.ListPrivilegeGroupsReq;
import io.milvus.v2.service.rbac.response.ListPrivilegeGroupsResp;

ListPrivilegeGroupsResp resp = client.listPrivilegeGroups(ListPrivilegeGroupsReq.builder()
        .build());
List<PrivilegeGroup> groups = resp.getPrivilegeGroups();

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.ListPrivilegeGroups(context.Background())

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/list" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{}'

فيما يلي مثال على الإخراج.

PrivilegeGroupItem: <privilege_group:privilege_group_1>, <privileges:('Search', 'Query')>

إسقاط مجموعة امتيازات

يوضح المثال التالي كيفية إسقاط مجموعة الامتيازات privilege_group_1.

from pymilvus import MilvusClient
client.drop_privilege_group(group_name='privilege_group_1')

import io.milvus.v2.service.rbac.request.DropPrivilegeGroupReq;

client.dropPrivilegeGroup(DropPrivilegeGroupReq.builder()
        .groupName("privilege_group_1")
        .build());

import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.DropPrivilegeGroup(context.Background(), "privilege_group_1")

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/privilege_groups/drop" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "privilegeGroupName":"privilege_group_1"
}'

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟