🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda
  • Panduan Administrasi
  • Home
  • Docs
  • Panduan Administrasi

  • Keamanan

  • Mengaktifkan RBAC

  • Memberikan Hak Istimewa

Memberikan Hak Istimewa atau Grup Hak Istimewa ke Peran

Setelah peran dibuat, Anda dapat memberikan hak istimewa pada peran tersebut. Panduan ini memperkenalkan cara memberikan hak istimewa atau grup hak istimewa ke peran.

Memberikan hak istimewa atau grup hak istimewa ke peran

Milvus 2.5 memperkenalkan versi baru API yang menyederhanakan operasi pemberian hak istimewa. Anda tidak perlu lagi mencari tipe objek ketika memberikan hak istimewa kepada sebuah role. Berikut ini adalah parameter dan penjelasan terkait.

  • role_name: Nama peran target yang perlu diberikan hak istimewa atau grup hak istimewa.

  • Resource: Sumber daya target hak istimewa, yang dapat berupa instance, database, atau koleksi tertentu. Tabel berikut ini menjelaskan cara menentukan sumber daya dalam metode client.grantV2().

Tingkat

Sumber Daya

Metode Pemberian

Catatan

Koleksi

Koleksi tertentu

client.grant_privilege_v2(nama_peran = "roleA", hak_keahlian = "CollectionAdmin", nama_koleksi = "col1", nama_db = "db1")

Masukkan nama koleksi target Anda dan nama basis data tempat koleksi target berada.

Semua koleksi di bawah basis data tertentu

client.grant_privilege_v2(nama_peran = "peranA", hak_keuntungan = "CollectionAdmin", nama_koleksi = "*", nama_db = "db1")

Masukkan nama basis data target Anda dan karakter pengganti `*` sebagai nama koleksi.

Basis data ** ** Basis data**

Basis data tertentu

client.grant_privilege_v2(nama_peran = "peranA", hak = "DatabaseAdmin", nama_koleksi = "*", nama_basis = "db1")

Masukkan nama basis data target Anda dan karakter pengganti `*` sebagai nama koleksi.

Semua basis data di bawah instans saat ini

client.grant_privilege_v2(nama_peran = "peranA", hak = "DatabaseAdmin", nama_koleksi = "*", nama_basis = "*")

Masukkan `*` sebagai nama basis data dan `*` sebagai nama koleksi.

Instance ** Instance**

Instance saat ini

client.grant_privilege_v2(nama_peran = "peranA", hak = "ClusterAdmin", nama_koleksi = "*", nama_basis = "*")

Masukkan `*` sebagai nama basis data dan `*` sebagai nama koleksi.

  • Hak istimewa: Privilege atau kelompok privilese tertentu yang perlu Anda berikan kepada sebuah role. Saat ini, Milvus menyediakan 56 jenis privilese yang dapat anda berikan. Tabel di bawah ini mencantumkan daftar hak istimewa di Milvus.

    Kolom jenis pada tabel di bawah ini digunakan untuk memudahkan anda mencari hak istimewa dengan cepat dan hanya digunakan untuk tujuan klasifikasi. Ketika memberikan hak istimewa, anda tidak perlu memahami jenisnya. Anda hanya perlu memasukkan hak istimewa yang sesuai.

Jenis

Hak istimewa

Deskripsi

Deskripsi API yang relevan di sisi klien

Hak Istimewa Basis Data

DaftarDatabase

Melihat semua database dalam instance saat ini

DaftarDatabase

JelaskanDatabase

Melihat detail database

JelaskanDatabase

CreateDatabase

Membuat basis data

BuatDatabase

JatuhkanDatabase

Menjatuhkan basis data

Jatuhkan basis data

UbahDatabase

Memodifikasi properti database

AlterDatabase

Hak Istimewa Koleksi

GetFlushState

Memeriksa status operasi flush koleksi

GetFlushState

GetLoadState

Memeriksa status pemuatan koleksi

GetLoadState

GetLoadingProgress

Memeriksa kemajuan pemuatan koleksi

GetLoadingProgress

TampilkanKoleksi

Melihat semua koleksi dengan hak istimewa koleksi

TampilkanKoleksi

DaftarAlias

Melihat semua alias dari sebuah koleksi

DaftarAliases

JelaskanKoleksi

Melihat detail dari sebuah koleksi

JelaskanKoleksi

JelaskanAlias

Melihat detail sebuah alias

JelaskanAlias

DapatkanStatistik

Mendapatkan statistik koleksi (misalnya jumlah entitas dalam koleksi)

GetCollectionStatistics

BuatKoleksi

Membuat koleksi

BuatKoleksi

DropCollection

Jatuhkan koleksi

JatuhkanKoleksi

Memuat

Memuat koleksi

Melepaskan

Melepaskan koleksi

ReleaseCollection

Flush

Mempertahankan semua entitas dalam koleksi ke dalam segmen tertutup. Setiap entitas yang disisipkan setelah operasi flush akan disimpan dalam segmen baru.

Pemadatan

Memicu pemadatan secara manual

Memadatkan

Ganti NamaKoleksi

Mengganti nama koleksi

Ubah NamaKoleksi

BuatAlias

Membuat alias untuk sebuah koleksi

BuatAlias

DropAlias

Menghilangkan alias dari sebuah koleksi

DropAlias

FlushAll

Mengosongkan semua koleksi dalam basis data

FlushAll

Keistimewaan Partisi

HasPartition

Memeriksa apakah sebuah partisi ada

HasPartition

TampilkanPartisi

Melihat semua partisi dalam sebuah koleksi

TampilkanPartisi

BuatPartisi

Membuat partisi

BuatPartisi

JatuhkanPartisi

Menghapus partisi

JatuhkanPartisi

Hak Istimewa Indeks

IndexDetail

Melihat detail indeks

JelaskanIndeks / DapatkanIndeksState / DapatkanKemajuanPembangunanIndeks

BuatIndeks

Membuat indeks

BuatIndeks

JatuhkanIndeks

Jatuhkan indeks

JatuhkanIndeks

Hak Istimewa Manajemen Sumber Daya

LoadBalance

Mencapai keseimbangan beban

Keseimbangan Beban

Buat Grup Sumber Daya

Membuat grup sumber daya

Membuat Grup Sumber Daya

Menghapus Grup Sumber Daya

Menghapus grup sumber daya

Jatuhkan Grup Sumber Daya

Memperbarui Grup Sumber Daya

Memperbarui grup sumber daya

Memperbarui Grup Sumber Daya

JelaskanGrup Sumber Daya

Melihat detail grup sumber daya

Jelaskan Grup Sumber Daya

DaftarGrupSumberDaya

Melihat semua grup sumber daya dari instance saat ini

ListResourceGroups

TransferNode

Mentransfer simpul di antara grup sumber daya

TransferNode

TransferReplika

Mentransfer replika antar grup sumber daya

TransferReplika

Pencadangan RBAC

Membuat cadangan untuk semua operasi terkait RBAC dalam instance saat ini

BackupRBAC

PulihkanRBAC

Memulihkan cadangan semua operasi terkait RBAC dalam instans saat ini

PulihkanRBAC

Hak Istimewa Entitas

Kueri

Melakukan kueri

Query

Pencarian

Melakukan pencarian

Cari

Menyisipkan

Menyisipkan entitas

Menyisipkan

Menghapus

Menghapus entitas

Menghapus

Memasukkan

Menyisipkan entitas

Menambah

Impor

Menyisipkan atau mengimpor entitas secara massal

Sisipkan/Impor Massal

Hak Istimewa RBAC

BuatKepemilikan

Membuat pengguna atau peran

BuatPengguna/BuatPeran

PerbaruiPengguna

Memperbarui kata sandi pengguna

PerbaruiKredensial

HapusKepemilikan

Menghapus kata sandi pengguna atau peran

HapusKredensial/JatuhkanPeran

PilihKepemilikan

Melihat semua pengguna yang diberikan peran tertentu

PilihPeran/PilihHibah

KelolaKepemilikan

Mengelola pengguna atau peran atau memberikan peran kepada pengguna

OperateUserRole/OperatePrivilege/OperatePrivilegeV2

PilihPengguna

Melihat semua peran yang diberikan kepada pengguna

PilihPengguna

BuatKelompokKeistimewaan

Membuat grup hak istimewa

Buat Grup Hak Istimewa

Hapus Grup Hak Istimewa

Menghapus grup hak istimewa

Jatuhkan Grup Hak Istimewa

DaftarGrup Hak Istimewa

Melihat semua grup hak istimewa dalam instance saat ini

Daftar Grup Hak Istimewa

OperatePrivilegeGroup

Menambahkan hak istimewa atau menghapus hak istimewa dari grup hak istimewa

OperatePrivilegeGroup

Contoh berikut ini mendemonstrasikan cara memberikan hak istimewa PrivilegeSearch pada collection_01 di bawah basis data default serta grup hak istimewa bernama privilege_group_1 ke peran 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":"*"
}'

Mendeskripsikan peran

Contoh berikut ini menunjukkan cara melihat hak istimewa yang diberikan kepada role role_a menggunakan metode describe_role.

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"
}'

Di bawah ini adalah contoh keluaran.

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

Mencabut hak istimewa atau grup hak istimewa dari suatu peran

Contoh berikut ini menunjukkan cara mencabut hak istimewa PrivilegeSearch pada collection_01 di bawah basis data default serta grup hak istimewa privilege_group_1 yang telah diberikan kepada role 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":"*"
}'

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?