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 | |
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 |
Semua basis data di bawah instans saat ini | client.grant_privilege_v2(nama_peran = "peranA", hak = "DatabaseAdmin", nama_koleksi = "*", nama_basis = "*") | Masukkan | |
Instance ** Instance** | Instance saat ini | client.grant_privilege_v2(nama_peran = "peranA", hak = "ClusterAdmin", nama_koleksi = "*", nama_basis = "*") | Masukkan |
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 | |
JelaskanDatabase | Melihat detail database | ||
CreateDatabase | Membuat basis data | ||
JatuhkanDatabase | Menjatuhkan basis data | ||
UbahDatabase | Memodifikasi properti database | ||
Hak Istimewa Koleksi | GetFlushState | Memeriksa status operasi flush koleksi | |
GetLoadState | Memeriksa status pemuatan koleksi | ||
GetLoadingProgress | Memeriksa kemajuan pemuatan koleksi | ||
TampilkanKoleksi | Melihat semua koleksi dengan hak istimewa koleksi | ||
DaftarAlias | Melihat semua alias dari sebuah koleksi | ||
JelaskanKoleksi | Melihat detail dari sebuah koleksi | ||
JelaskanAlias | Melihat detail sebuah alias | ||
DapatkanStatistik | Mendapatkan statistik koleksi (misalnya jumlah entitas dalam koleksi) | ||
BuatKoleksi | Membuat koleksi | ||
DropCollection | Jatuhkan koleksi | ||
Memuat | Memuat koleksi | ||
Melepaskan | Melepaskan koleksi | ||
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 | ||
Ganti NamaKoleksi | Mengganti nama koleksi | ||
BuatAlias | Membuat alias untuk sebuah koleksi | ||
DropAlias | Menghilangkan alias dari sebuah koleksi | ||
FlushAll | Mengosongkan semua koleksi dalam basis data | ||
Keistimewaan Partisi | HasPartition | Memeriksa apakah sebuah partisi ada | |
TampilkanPartisi | Melihat semua partisi dalam sebuah koleksi | ||
BuatPartisi | Membuat partisi | ||
JatuhkanPartisi | Menghapus partisi | ||
Hak Istimewa Indeks | IndexDetail | Melihat detail indeks | JelaskanIndeks / DapatkanIndeksState / DapatkanKemajuanPembangunanIndeks |
BuatIndeks | Membuat indeks | ||
JatuhkanIndeks | Jatuhkan indeks | JatuhkanIndeks | |
Hak Istimewa Manajemen Sumber Daya | LoadBalance | Mencapai keseimbangan beban | |
Buat Grup Sumber Daya | Membuat grup sumber daya | ||
Menghapus Grup Sumber Daya | Menghapus grup sumber daya | ||
Memperbarui Grup Sumber Daya | Memperbarui grup sumber daya | ||
JelaskanGrup Sumber Daya | Melihat detail grup sumber daya | ||
DaftarGrupSumberDaya | Melihat semua grup sumber daya dari instance saat ini | ||
TransferNode | Mentransfer simpul di antara grup sumber daya | ||
TransferReplika | Mentransfer replika antar grup sumber daya | ||
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 | |
Pencarian | Melakukan pencarian | ||
Menyisipkan | Menyisipkan entitas | ||
Menghapus | Menghapus entitas | ||
Memasukkan | Menyisipkan entitas | Menambah | |
Impor | Menyisipkan atau mengimpor entitas secara massal | ||
Hak Istimewa RBAC | BuatKepemilikan | Membuat pengguna atau peran | |
PerbaruiPengguna | Memperbarui kata sandi pengguna | ||
HapusKepemilikan | Menghapus kata sandi pengguna atau peran | ||
PilihKepemilikan | Melihat semua pengguna yang diberikan peran tertentu | ||
KelolaKepemilikan | Mengelola pengguna atau peran atau memberikan peran kepada pengguna | ||
PilihPengguna | Melihat semua peran yang diberikan kepada pengguna | ||
BuatKelompokKeistimewaan | Membuat grup hak istimewa | ||
Hapus Grup Hak Istimewa | Menghapus grup hak istimewa | ||
DaftarGrup Hak Istimewa | Melihat semua grup hak istimewa dalam instance saat ini | ||
OperatePrivilegeGroup | Menambahkan hak istimewa atau menghapus hak istimewa dari grup hak istimewa |
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":"*"
}'