إنشاء المستخدمين والأدوار
يحقق Milvus التحكم الدقيق في الوصول من خلال التحكم في الوصول من خلال RBAC. يمكنك البدء بإنشاء مستخدمين وأدوار، ثم تعيين امتيازات أو مجموعات امتيازات للأدوار، وأخيراً إدارة التحكم في الوصول من خلال منح الأدوار للمستخدمين. تضمن هذه الطريقة كفاءة وأمان إدارة الوصول. تقدم هذه الصفحة كيفية إنشاء المستخدمين والأدوار في Milvus.
المستخدم
بعد تهيئة مثيل Milvus، يتم إنشاء مستخدم جذر تلقائياً للمصادقة عند الاتصال ب Milvus للمرة الأولى. اسم المستخدم للمستخدم الجذر هو root
وكلمة المرور هي Milvus
. الدور الافتراضي للمستخدم الجذر هو admin
، والذي لديه حق الوصول إلى جميع الموارد. لضمان أمن البيانات، يرجى الحفاظ على بيانات اعتماد المستخدم الجذر آمنة لمنع الوصول غير المصرح به.
للعمليات اليومية، نوصي بإنشاء مستخدمين بدلاً من استخدام المستخدم الجذر.
إنشاء مستخدم
يوضح المثال التالي كيفية إنشاء مستخدم باسم المستخدم user_1
وكلمة المرور P@ssw0rd
. يجب أن يتبع اسم المستخدم وكلمة المرور للمستخدم القواعد التالية.
اسم المستخدم: يجب أن يبدأ بحرف ويمكن أن يتضمن فقط أحرفًا كبيرة أو صغيرة وأرقامًا وشروطًا سفلية.
كلمة المرور: يجب أن يتراوح طولها بين 8 و64 حرفًا ويجب أن تتضمن ثلاثة مما يلي: أحرف كبيرة وأحرف صغيرة وأرقام وأحرف خاصة.
from pymilvus import MilvusClient
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus"
)
client.create_user(user_name="user_1", password="P@ssw0rd")
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.rbac.request.CreateUserReq;
ConnectConfig connectConfig = ConnectConfig.builder()
.uri("http://localhost:19530")
.token("root:Milvus")
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
CreateUserReq createUserReq = CreateUserReq.builder()
.userName("user_1")
.password("P@ssw0rd")
.build();
client.createUser(createUserReq);
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.createUser({
username: 'user_1',
password: 'P@ssw0rd',
});
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"userName": "user_1",
"password": "P@ssw0rd"
}'
تحديث كلمة المرور
بعد إنشاء مستخدم، يمكنك تحديث كلمة المرور إذا نسيت.
يجب أن تتبع كلمة المرور الجديدة القاعدة التالية.
- يجب أن تتكون من 8-64 حرفًا وأن تتضمن ثلاثة مما يلي: أحرف كبيرة وأحرف صغيرة وأرقام وأحرف خاصة.
يوضح المثال التالي كيفية تحديث كلمة المرور للمستخدم user_1
إلى NewP@ssw0rd
.
from pymilvus import MilvusClient
client.update_password(
user_name="user_1",
old_password="P@ssw0rd",
new_password="NewP@ssw0rd"
)
import io.milvus.v2.service.rbac.request.UpdatePasswordReq;
UpdatePasswordReq updatePasswordReq = UpdatePasswordReq.builder()
.userName("user_1")
.password("P@ssw0rd")
.newPassword("NewP@ssw0rd")
.build();
client.updatePassword(updatePasswordReq);
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.updateUser({
username: 'user_1',
newPassword: 'P@ssw0rd',
oldPassword: 'NewP@ssw0rd',
});
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/update_password" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"newPassword": "P@ssw0rd!",
"userName": "user_1",
"password": "P@ssw0rd"
}'
سرد المستخدمين
بعد إنشاء عدة مستخدمين، يمكنك سرد وعرض جميع المستخدمين الحاليين.
from pymilvus import MilvusClient
client.list_users()
List<String> resp = client.listUsers();
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.listUsers();
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/users/list" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{}'
فيما يلي مثال على الإخراج. root
هو المستخدم الافتراضي الذي تم إنشاؤه تلقائيًا في Milvus. user_1
هو المستخدم الجديد الذي تم إنشاؤه للتو.
['root', 'user_1']
الدور
يوفر Milvus دورًا مدمجًا يسمى admin
، وهو دور مسؤول يمكنه الوصول إلى الموارد ضمن جميع المثيلات ولديه امتيازات لجميع العمليات. للحصول على إدارة وصول أكثر دقة وأمان محسّن للبيانات، يوصى بإنشاء أدوار مخصصة بناءً على احتياجاتك.
إنشاء دور
يوضح المثال التالي كيفية إنشاء دور باسم role_a
.
يجب أن يتبع اسم الدور القاعدة التالية.
- يجب أن يبدأ بحرف ويمكن أن يتضمن فقط أحرفًا كبيرة أو صغيرة وأرقامًا وشرطات سفلية."
from pymilvus import MilvusClient
client.create_role(role_name="role_a")
import io.milvus.v2.service.rbac.request.CreateRoleReq;
CreateRoleReq createRoleReq = CreateRoleReq.builder()
.roleName("role_a")
.build();
client.createRole(createRoleReq);
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.createRole({
roleName: 'role_a',
});
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"roleName": "role_a"
}'
سرد الأدوار
بعد إنشاء عدة أدوار، يمكنك سرد جميع الأدوار الموجودة وعرضها.
from pymilvus import MilvusClient
client.list_roles()
List<String> roles = client.listRoles();
const { MilvusClient, DataType } = require("@zilliz/milvus2-sdk-node")
await milvusClient.listRoles(
includeUserInfo: True
);
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/roles/list" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{}'
فيما يلي مثال على الإخراج. admin
هو الدور الافتراضي في ميلفوس. role_a
هو الدور الجديد الذي تم إنشاؤه للتو.
['admin', 'role_a']