Membuat Grup Hak Istimewa
Untuk menyederhanakan proses pemberian hak istimewa, Anda disarankan untuk menggabungkan beberapa hak istimewa ke dalam grup hak istimewa.
Grup hak istimewa vs hak istimewa
Grup hak istimewa terdiri dari beberapa hak istimewa.
Ilustrasi grup hak istimewa
Seperti yang ditunjukkan pada gambar di atas, misalkan Anda perlu memberikan tiga hak istimewa yang berbeda pada sebuah peran.
Jika Anda tidak menggunakan grup hak istimewa, Anda perlu memberikan hak istimewa tiga kali.
Jika Anda menggunakan grup hak istimewa, Anda hanya perlu membuat grup hak istimewa dan menambahkan tiga hak istimewa ke grup hak istimewa ini dan memberikan grup hak istimewa tersebut ke Role A.
Dengan menggunakan grup hak istimewa, Anda dapat memberikan beberapa hak istimewa secara massal ke sebuah peran.
Grup hak istimewa bawaan
Untuk kemudahan penggunaan, Milvus menyediakan total 9 hak istimewa bawaan di tingkat koleksi, basis data, dan instance: COLL_RO, COLL_RW, COLL_ADMIN, DB_RO, DB_RW, DB_Admin, Cluster_RO, Cluster_RW, dan Cluster_Admin.
Tiga tingkat grup hak istimewa bawaan tidak memiliki hubungan berjenjang. Menetapkan grup hak istimewa pada tingkat instance tidak secara otomatis menetapkan izin untuk semua database dan koleksi di bawah instance tersebut. Hak istimewa di tingkat database dan koleksi perlu diatur secara manual.
Tabel berikut ini menjelaskan hak istimewa yang disertakan dalam setiap grup hak istimewa bawaan.
Tingkat koleksi
COLL_RO: mencakup hak istimewa untuk membaca data koleksi
COLL_RW: mencakup hak istimewa untuk membaca dan menulis data koleksi
COLL_ADMIN: mencakup hak istimewa untuk membaca dan menulis data koleksi dan mengelola koleksi.
Tabel di bawah ini mencantumkan hak istimewa khusus yang termasuk dalam tiga kelompok hak istimewa bawaan pada tingkat koleksi.
Hak istimewa | CollectionReadOnly | KoleksiBacaTulis | CollectionAdmin |
---|---|---|---|
Permintaan | ✔️ | ✔️ | ✔️ |
Pencarian | ✔️ | ✔️ | ✔️ |
IndexDetail | ✔️ | ✔️ | ✔️ |
GetFlushState | ✔️ | ✔️ | ✔️ |
GetLoadState | ✔️ | ✔️ | ✔️ |
GetLoadingProgress | ✔️ | ✔️ | ✔️ |
MemilikiPartisi | ✔️ | ✔️ | ✔️ |
TampilkanPartisi | ✔️ | ✔️ | ✔️ |
DaftarAliases | ✔️ | ✔️ | ✔️ |
JelaskanKoleksi | ✔️ | ✔️ | ✔️ |
JelaskanAlias | ✔️ | ✔️ | ✔️ |
GetStatistics | ✔️ | ✔️ | ✔️ |
CreateIndex | ❌ | ✔️ | ✔️ |
DropIndex | ❌ | ✔️ | ✔️ |
BuatPartisi | ❌ | ✔️ | ✔️ |
JatuhkanPartisi | ❌ | ✔️ | ✔️ |
Memuat | ❌ | ✔️ | ✔️ |
Lepaskan | ❌ | ✔️ | ✔️ |
Sisipkan | ❌ | ✔️ | ✔️ |
Menghapus | ❌ | ✔️ | ✔️ |
Upsert | ❌ | ✔️ | ✔️ |
Impor | ❌ | ✔️ | ✔️ |
Siram | ❌ | ✔️ | ✔️ |
Pemadatan | ❌ | ✔️ | ✔️ |
Keseimbangan Beban | ❌ | ✔️ | ✔️ |
BuatAlias | ❌ | ❌ | ✔️ |
DropAlias | ❌ | ❌ | ✔️ |
Tingkat basis data
DB_RO: mencakup hak istimewa untuk membaca data basis data
DB_RW: mencakup hak istimewa untuk membaca dan menulis data basis data
DB_Admin: mencakup hak istimewa untuk membaca dan menulis data basis data dan mengelola basis data.
Tabel di bawah ini mencantumkan hak istimewa spesifik yang termasuk dalam tiga kelompok hak istimewa bawaan pada tingkat basis data.
Hak istimewa | DatabaseReadOnly | DatabaseReadWrite | DatabaseAdmin |
---|---|---|---|
TampilkanKoleksi | ✔️ | ✔️ | ✔️ |
JelaskanDatabase | ✔️ | ✔️ | ✔️ |
MembuatKoleksi | ❌ | ❌ | ✔️ |
DropCollection | ❌ | ❌ | ✔️ |
AlterDatabase | ❌ | ✔️ | ✔️ |
Tingkat cluster
Cluster_RO: termasuk hak istimewa untuk membaca data instnace
Cluster_RW: termasuk hak istimewa untuk membaca dan menulis data instance
Cluster_Admin: mencakup hak istimewa untuk membaca dan menulis data instans dan mengelola instans.
Tabel di bawah ini mencantumkan hak istimewa spesifik yang termasuk dalam tiga kelompok hak istimewa bawaan di tingkat instance.
Hak istimewa | ClusterReadOnly | ClusterReadWrite | ClusterAdmin |
---|---|---|---|
DaftarDatabase | ✔️ | ✔️ | ✔️ |
Ganti NamaKoleksi | ❌ | ❌ | ✔️ |
BuatKepemilikan | ❌ | ❌ | ✔️ |
PerbaruiPengguna | ❌ | ❌ | ✔️ |
JatuhkanKepemilikan | ❌ | ❌ | ✔️ |
PilihKepemilikan | ✔️ | ✔️ | ✔️ |
KelolaKepemilikan | ❌ | ❌ | ✔️ |
PilihPengguna | ✔️ | ✔️ | ✔️ |
BackupRBAC | ❌ | ❌ | ✔️ |
PulihkanRBAC | ❌ | ❌ | ✔️ |
Membuat Grup Sumber Daya | ❌ | ❌ | ✔️ |
Menghapus Grup Sumber Daya | ❌ | ❌ | ✔️ |
Perbarui Grup Sumber Daya | ❌ | ✔️ | ✔️ |
JelaskanKelompokSumberDaya | ✔️ | ✔️ | ✔️ |
DaftarKelompokSumberDaya | ✔️ | ✔️ | ✔️ |
TransferNode | ❌ | ✔️ | ✔️ |
TransferReplika | ❌ | ✔️ | ✔️ |
MembuatDatabase | ❌ | ❌ | ✔️ |
DropDatabase | ❌ | ❌ | ✔️ |
FlushAll | ❌ | ✔️ | ✔️ |
BuatKelompokHakKhusus | ❌ | ❌ | ✔️ |
HapusKeistimewaanGrup | ❌ | ❌ | ✔️ |
DaftarKelompokHakKhusus | ❌ | ❌ | ✔️ |
OperatePrivilegeGroup | ❌ | ❌ | ✔️ |
Prosedur
Anda dapat membuat grup hak istimewa dan kemudian menambahkan hak istimewa ke grup hak istimewa.
Membuat grup hak istimewa
Contoh berikut ini menunjukkan cara membuat grup hak istimewa bernama 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"
}'
Menambahkan hak istimewa ke grup hak istimewa
Contoh berikut menunjukkan cara menambahkan hak istimewa PrivilegeBackupRBAC
dan PrivilegeRestoreRBAC
ke grup hak istimewa privilege_group_1
yang baru saja dibuat.
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"]
}'
Menghapus hak istimewa dari grup hak istimewa
Contoh berikut menunjukkan cara menghapus hak istimewa PrivilegeRestoreRBAC
dari grup hak istimewa 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"]
}'
Membuat daftar grup hak istimewa
Contoh berikut ini menunjukkan cara membuat daftar semua grup hak istimewa yang ada.
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 '{}'
Di bawah ini adalah contoh keluaran.
PrivilegeGroupItem: <privilege_group:privilege_group_1>, <privileges:('Search', 'Query')>
Menghapus grup hak istimewa
Contoh berikut ini menunjukkan cara menghapus grup hak istimewa 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"
}'