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

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

  • الأمن

  • تمكين RBAC

  • منح الامتيازات

منح امتياز أو مجموعة امتيازات للأدوار

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

منح امتياز أو مجموعة امتيازات لدور ما

يقدم الإصدار Milvus 2.5 إصدارًا جديدًا من واجهة برمجة التطبيقات (API) التي تبسط عملية المنح. لم تعد بحاجة إلى البحث عن نوع الكائن عند منح امتياز إلى دور. فيما يلي المعلمات والتفسيرات المقابلة.

  • اسم الدور: اسم الدور المستهدف الذي يجب منحه الامتياز (الأدوار) أو مجموعة (مجموعات) الامتيازات.

  • المورد: المورد المستهدف للامتياز، والذي يمكن أن يكون مثيلًا أو قاعدة بيانات أو مجموعة محددة. يشرح الجدول التالي كيفية تحديد المورد في الأسلوب client.grantV2().

المستوى

المورد

طريقة المنح

ملاحظات

التحصيل

مجموعة محددة

client.grant_privilege_v2(role_name="roleA"، امتياز="CollectionAdmin"، collection_name="col1"، db_name="db1")

أدخل اسم المجموعة المستهدفة واسم قاعدة البيانات التي تنتمي إليها المجموعة المستهدفة.

جميع المجموعات ضمن قاعدة بيانات محددة

client.grant_privilege_v2(role_name="roleA"، امتياز="CollectionAdmin"، collection_name="*"، db_name="db1")

أدخل اسم قاعدة البيانات المستهدفة وحرف البدل `*` كاسم المجموعة.

**قاعدة البيانات**

قاعدة بيانات محددة

client.grant_privilege_v2(role_name="roleA"، امتياز="DatabaseAdmin"، collection_name="*"، db_name="db1")

أدخل اسم قاعدة البيانات المستهدفة وحرف البدل `*` كاسم المجموعة.

جميع قواعد البيانات ضمن المثيل الحالي

client.grant_privilege_v2(role_name="roleA"، امتياز="DatabaseAdmin"، collection_name="*"، db_name="*")

أدخل `*` كاسم قاعدة البيانات و `*` كاسم المجموعة.

**المثيل**

المثيل الحالي

client.grant_privilege_v2(role_name="roleA"، امتياز="ClusterAdmin"، collection_name="*"، db_name="*")

أدخل `*` كاسم قاعدة البيانات و `*` كاسم المجموعة.

  • الامتياز: الامتياز أو مجموعة الامتيازات المحددة التي تحتاج إلى منحها للدور. يوفر ملفوس حالياً 56 نوعاً من الامتيازات التي يمكنك منحها. يسرد الجدول أدناه الامتيازات في ملفوس.

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

النوع

الامتياز

الوصف

وصف واجهة برمجة التطبيقات ذات الصلة من جانب العميل

امتيازات قاعدة البيانات

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

عرض كافة قواعد البيانات في المثيل الحالي

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

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

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

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

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

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

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

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

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

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

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

تعديل خصائص قاعدة البيانات

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

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

GetFlushState

التحقق من حالة عملية تدفق المجموعة

GetFlushState

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

تحقق من حالة تحميل المجموعة

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

GetLoadingProgress

التحقق من تقدم التحميل لمجموعة ما

GetLoadingProgress

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

عرض كافة المجموعات مع امتيازات المجموعة

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

سرد الأسماء المستعارة

عرض كافة الأسماء المستعارة للمجموعة

ListAliases

وصف المجموعة

عرض تفاصيل المجموعة

وصف المجموعة

وصف الأسماء المستعارة

عرض تفاصيل الاسم المستعار

وصف الاسم المستعار

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

الحصول على إحصائيات مجموعة (مثل: عدد الكيانات في مجموعة)

الحصول على إحصائيات المجموعة

إنشاء مجموعة

إنشاء مجموعة

إنشاء مجموعة

إسقاط مجموعة

إسقاط مجموعة

إسقاط مجموعة

تحميل

تحميل مجموعة

تحرير

تحرير مجموعة

تحرير مجموعة

مسح

نقل جميع الكيانات في مجموعة إلى مقطع مغلق. أي كيان تم إدراجه بعد عملية التدفق سيتم تخزينه في مقطع جديد.

ضغط

تشغيل الضغط يدويًا

ضغط

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

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

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

إنشاء اسم مستعار

إنشاء اسم مستعار لمجموعة

إنشاء اسم مستعار

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

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

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

مسح الكل

مسح كافة المجموعات في قاعدة البيانات

مسح الكل

امتيازات التقسيم

لديه قسم

التحقق من وجود قسم من عدمه

لديه قسم

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

عرض كافة الأقسام في المجموعة

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

إنشاء قسم

إنشاء قسم

إنشاء قسم

إسقاط قسم

إسقاط قسم

إسقاط قسم

امتيازات الفهرس

تفاصيل الفهرس

عرض تفاصيل الفهرس

وصف الفهرس/إحضار الفهرس/إحضار الفهرس/إحضار تقدم إنشاء الفهرس

إنشاء فهرس

إنشاء فهرس

إنشاء فهرس

إسقاط فهرس

إسقاط فهرس

إسقاط فهرس

امتيازات إدارة الموارد

موازنة التحميل

تحقيق توازن التحميل

LoadBalance

إنشاء مجموعة موارد

إنشاء مجموعة موارد

إنشاءResResourceGroup

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

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

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

تحديثResourceResourceGroups

تحديث مجموعة موارد

تحديثResResResourceGroups

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

عرض تفاصيل مجموعة موارد

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

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

عرض كافة مجموعات الموارد الخاصة بالمثيل الحالي

ListResResourceGroups

نقل العقدة

نقل العقد بين مجموعات الموارد

نقل العقدة

نقل النسخ المتماثلة

نقل النسخ المتماثلة بين مجموعات الموارد

نقل النسخ المتماثلة

النسخ الاحتياطي RBAC

إنشاء نسخة احتياطية لجميع العمليات المتعلقة ب RBAC في المثيل الحالي

BackupRBAC

استعادةRBAC

استعادة نسخة احتياطية لجميع العمليات المتعلقة بـ RBAC في المثيل الحالي

استعادةRBAC

امتيازات الكيان

استعلام

إجراء استعلام

استعلام

بحث

إجراء بحث

بحث

إدراج

إدراج كيانات

إدراج

حذف

حذف كيانات

حذف

إدراج كيانات

إدراج كيانات Upsert

Upsert

استيراد

إدراج كيانات أو استيراد كيانات بالجملة

إدراج/استيراد مجمّع

امتيازات RBAC

إنشاء ملكية

إنشاء مستخدم أو دور

إنشاء مستخدم/إنشاء دور

تحديث مستخدم

تحديث كلمة مرور المستخدم

تحديثCredentialCredential

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

إسقاط كلمة مرور مستخدم أو دور

حذفالمعتمد/إسقاط دور

تحديدالملكية

عرض جميع المستخدمين الذين تم منحهم دوراً محدداً

تحديدالدور/اختيارالملكية

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

إدارة مستخدم أو دور أو منح دور لمستخدم ما

تشغيلUserUserRole/تشغيل الامتياز/تشغيل الامتياز/تشغيل الامتياز V2

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

عرض جميع الأدوار الممنوحة للمستخدم

تحديد مستخدم

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

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

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

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

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

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

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

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

ListPrivilegeGroups

تشغيل مجموعة امتيازات

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

تشغيل مجموعة امتيازات

يوضح المثال التالي كيفية منح الامتياز PrivilegeSearch على collection_01 ضمن قاعدة البيانات الافتراضية بالإضافة إلى مجموعة امتيازات باسم privilege_group_1 للدور role_a.

from pymilvus import MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

client.grant_privilege_v2(
    role_name="role_a",
    privilege="Search"
    collection_name='collection_01'
    db_name='default',
)
    
client.grant_privilege_v2(
    role_name="role_a",
    privilege="privilege_group_1"
    collection_name='collection_01'
    db_name='default',
)

client.grant_privilege_v2(
    role_name="role_a",
    privilege="ClusterReadOnly"
    collection_name='*'
    db_name='*',
)
import io.milvus.v2.service.rbac.request.GrantPrivilegeReqV2

client.grantPrivilegeV2(GrantPrivilegeReqV2.builder()
        .roleName("role_a")
        .privilege("Search")
        .collectionName("collection_01")
        .dbName("default")
        .build());

client.grantPrivilegeV2(GrantPrivilegeReqV2.builder()
        .roleName("role_a")
        .privilege("privilege_group_1")
        .collectionName("collection_01")
        .dbName("default")
        .build());

client.grantPrivilegeV2(GrantPrivilegeReqV2.builder()
        .roleName("role_a")
        .privilege("ClusterReadOnly")
        .collectionName("*")
        .dbName("*")
        .build());
import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.GrantV2(context.Background(), "role_a", "collection_01", "Search", entity.WithOperatePrivilegeDatabase("default"))

client.GrantV2(context.Background(), "role_a", "collection_01", "privilege_group_1", entity.WithOperatePrivilegeDatabase("default"))

client.GrantV2(context.Background(), "role_a", "*", "ClusterReadOnly", entity.WithOperatePrivilegeDatabase("*"))
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});

await milvusClient.grantPrivilege({
   roleName: 'role_a',
   object: 'Collection', 
   objectName: 'collection_01',
   privilegeName: 'Search'
 });
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/grant_privilege_v2" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "privilege": "Search",
    "collectionName": "collection_01",
    "dbName":"default"
}'

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/grant_privilege_v2" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "privilege": "privilege_group_1",
    "collectionName": "collection_01",
    "dbName":"default"
}'

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/grant_privilege_v2" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "privilege": "ClusterReadOnly",
    "collectionName": "*",
    "dbName":"*"
}'

وصف الدور

يوضح المثال التالي كيفية عرض الامتيازات الممنوحة للدور role_a باستخدام طريقة وصف_الدور.

from pymilvus import MilvusClient

client.describe_role(role_name="role_a")
import io.milvus.v2.service.rbac.response.DescribeRoleResp;
import io.milvus.v2.service.rbac.request.DescribeRoleReq

DescribeRoleReq describeRoleReq = DescribeRoleReq.builder()
        .roleName("role_a")
        .build();
DescribeRoleResp resp = client.describeRole(describeRoleReq);
List<DescribeRoleResp.GrantInfo> infos = resp.getGrantInfos();
import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.ListRoles(context.Background())
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")

await milvusClient.describeRole({roleName: 'role_a'});
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/describe" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a"
}'

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

{
     "role": "role_a",
     "privileges": [
         {
             "collection_name": "collection_01",
             "db_name": "default",
             "role_name": "role_a",
             "privilege": "Search",
             "grantor_name": "root"
         },
         "privilege_group_1"
     ]
}

إبطال امتياز أو مجموعة امتيازات من دور ما

يوضح المثال التالي كيفية إبطال الامتياز PrivilegeSearch على collection_01 ضمن قاعدة البيانات الافتراضية بالإضافة إلى مجموعة الامتيازات privilege_group_1 التي تم منحها للدور role_a.

from pymilvus import MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

client.revoke_privilege_v2(
    role_name="role_a",
    privilege="Search"
    collection_name='collection_01'
    db_name='default',
)
    
client.revoke_privilege_v2(
    role_name="role_a",
    privilege="privilege_group_1"
    collection_name='collection_01'
    db_name='default',
)

client.revoke_privilege_v2(
    role_name="role_a",
    privilege="ClusterReadOnly"
    collection_name='*'
    db_name='*',
)
import io.milvus.v2.service.rbac.request.RevokePrivilegeReqV2

client.revokePrivilegeV2(RevokePrivilegeReqV2.builder()
        .roleName("role_a")
        .privilege("Search")
        .collectionName("collection_01")
        .dbName("default")
        .build());

client.revokePrivilegeV2(RevokePrivilegeReqV2.builder()
        .roleName("role_a")
        .privilege("privilege_group_1")
        .collectionName("collection_01")
        .dbName("default")
        .build());

client.revokePrivilegeV2(RevokePrivilegeReqV2.builder()
        .roleName("role_a")
        .privilege("ClusterReadOnly")
        .collectionName("*")
        .dbName("*")
        .build());
import "github.com/milvus-io/milvus-sdk-go/v2/client"

client.RevokeV2(context.Background(), "role_a", "collection_01", "Search", entity.WithOperatePrivilegeDatabase("default"))

client.RevokeV2(context.Background(), "role_a", "collection_01", "privielge_group_1", entity.WithOperatePrivilegeDatabase("default"))

client.RevokeV2(context.Background(), "role_a", "*", "ClusterReadOnly", entity.WithOperatePrivilegeDatabase("*"))
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/revoke_privilege_v2" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "privilege": "Search",
    "collectionName": "collection_01",
    "dbName":"default"
}'

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/revoke_privilege_v2" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "privilege": "Search",
    "collectionName": "collection_01",
    "dbName":"default"
}'

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/revoke_privilege_v2" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
    "roleName": "role_a",
    "privilege": "ClusterReadOnly",
    "collectionName": "*",
    "dbName":"*"
}'

جرب Managed Milvus مجاناً

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

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

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