Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

إدارة مستخدمي قاعدة البيانات

يوضح هذا الدليل طريقتين لإدارة مستخدمي قاعدة البيانات: من خلال SQL Console أو مباشرةً داخل قاعدة البيانات.

المصادقة بدون كلمة مرور في SQL Console

يُنشأ مستخدمو SQL Console لكل جلسة، وتتم مصادقتهم باستخدام شهادات X.509 التي تُدوَّر تلقائيًا. ويُزال المستخدم عند إنهاء الجلسة. عند إنشاء قوائم الوصول لأغراض التدقيق، يُرجى الانتقال إلى علامة التبويب Settings الخاصة بالخدمة في Console، ومراعاة وصول SQL Console بالإضافة إلى مستخدمي قاعدة البيانات الموجودين في قاعدة البيانات. وإذا كانت الأدوار المخصصة مُهيأة، فسيُدرج وصول المستخدم ضمن الدور الذي ينتهي باسم المستخدم الخاص به.

مستخدمو SQL Console والأدوار

يمكن إسناد أدوار SQL Console الأساسية إلى المستخدمين الذين لديهم أذونات Service Read Only وService Admin. لمزيد من المعلومات، راجع إدارة تعيينات أدوار SQL Console. يوضّح هذا الدليل كيفية إنشاء دور مخصّص لمستخدم في SQL Console.

لإنشاء دور مخصّص لمستخدم في SQL Console ومنحه دورًا عامًا، شغّل الأوامر التالية. يجب أن يتطابق عنوان البريد الإلكتروني مع عنوان البريد الإلكتروني للمستخدم في Console.

[object Object]

أنشئ الدور database_developer وامنحه أذونات SHOW وCREATE وALTER وDELETE.

CREATE ROLE OR REPLACE database_developer;
GRANT SHOW ON * TO database_developer;
GRANT CREATE ON * TO database_developer;
GRANT ALTER ON * TO database_developer;
GRANT DELETE ON * TO database_developer;

إنشاء دور لمستخدم SQL Console

أنشئ دورًا لمستخدم SQL Console وهو my.user@domain.com، ثم أسند إليه الدور database_developer.

CREATE ROLE OR REPLACE `sql-console-role:my.user@domain.com`;
GRANT database_developer TO `sql-console-role:my.user@domain.com`;

يُسنَد إلى المستخدم الدور الجديد عند استخدام SQL Console

سيُسنَد إلى المستخدم الدور المرتبط بعنوان بريده الإلكتروني كلما استخدم SQL Console.

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

معرّف مستخدم قاعدة البيانات وكلمة المرور

استخدم أسلوب SHA256_hash عند إنشاء حسابات المستخدمين لتأمين كلمات المرور. يجب أن تتكوّن كلمات مرور مستخدمي قاعدة بيانات ClickHouse من 12 حرفًا على الأقل، وأن تستوفي متطلبات التعقيد: أحرف كبيرة، وأحرف صغيرة، وأرقام و/أو رموز خاصة.

CREATE USER userName IDENTIFIED WITH sha256_hash BY 'hash';

مستخدم قاعدة بيانات مع مصادقة SSH

لإعداد مصادقة SSH لمستخدم قاعدة بيانات في ClickHouse Cloud.

  1. استخدم ssh-keygen لإنشاء زوج من المفاتيح.
  2. استخدم المفتاح العام لإنشاء المستخدم.
  3. عيّن الأدوار و/أو الأذونات للمستخدم.
  4. استخدم المفتاح الخاص للمصادقة مع الخدمة.

للاطّلاع على شرح تفصيلي مع أمثلة، راجع How to connect to ClickHouse Cloud using SSH keys في قاعدة المعرفة الخاصة بنا.

أذونات قاعدة البيانات

اضبط ما يلي ضمن الخدمات وقواعد البيانات باستخدام عبارة SQL ‏GRANT.

Role Description
Default وصول إداري كامل إلى الخدمات
Custom اضبطه باستخدام عبارة SQL GRANT
  • أدوار قاعدة البيانات تراكمية. وهذا يعني أنه إذا كان المستخدم عضوًا في دورين، فسيحصل على أوسع نطاق وصول يمنحه أيٌّ من هذين الدورين. ولا يفقد أي صلاحيات عند إضافة أدوار.
  • يمكن منح أدوار قاعدة البيانات لأدوار أخرى، مما يؤدي إلى بنية هرمية. وترث الأدوار جميع أذونات الأدوار التي تكون عضوًا فيها.
  • أدوار قاعدة البيانات خاصة بكل خدمة، ويمكن تطبيقها على عدة قواعد بيانات ضمن الخدمة نفسها.

يوضح الشكل أدناه الطرق المختلفة التي يمكن بها منح المستخدم أذونات.

رسم توضيحي يبيّن الطرق المختلفة التي يمكن بها منح المستخدم أذونات

الإعدادات الأولية

تتضمن قواعد البيانات حسابًا باسم default يُضاف تلقائيًا ويُمنَح الدور default_role عند إنشاء الخدمة. ويُعرَض للمستخدم الذي ينشئ الخدمة كلمة المرور العشوائية المُولَّدة تلقائيًا والمُعيَّنة لحساب default عند إنشاء الخدمة. ولا تظهر كلمة المرور بعد الإعداد الأولي، لكن يمكن لأي مستخدم لديه أذونات Service Admin في Console تغييرها لاحقًا. ويمكن لهذا الحساب، أو لأي حساب لديه امتيازات Service Admin ضمن Console، إعداد مستخدمي قاعدة بيانات إضافيين وأدوار في أي وقت.

نوصي بإنشاء حساب مستخدم جديد مرتبط بشخص، ومنح هذا المستخدم الدور default_role. وذلك لكي تُنسَب الأنشطة التي ينفذها المستخدمون إلى معرّفات المستخدم الخاصة بهم، وليبقى حساب default مخصصًا لإجراءات الطوارئ.

  CREATE USER userID IDENTIFIED WITH sha256_hash by 'hashed_password';
  GRANT default_role to userID;

يمكنك استخدام مولّد تجزئة SHA256 أو دالة برمجية مثل hashlib في بايثون لتحويل كلمة مرور مكوّنة من 12 حرفًا أو أكثر وبدرجة تعقيد مناسبة إلى سلسلة SHA256 لتقديمها إلى مسؤول النظام لاستخدامها ككلمة مرور. ويضمن ذلك ألّا يرى المسؤول كلمات المرور غير المشفّرة أو يتعامل معها.

قوائم الوصول إلى قاعدة البيانات باستخدام مستخدمي SQL console

يمكن استخدام العملية التالية لإنشاء قائمة وصول كاملة عبر SQL console وقواعد البيانات في مؤسستك.

الحصول على قائمة بجميع الأذونات الممنوحة في قاعدة البيانات

شغّل الاستعلامات التالية للحصول على قائمة بجميع الأذونات الممنوحة في قاعدة البيانات.

SELECT grants.user_name,
grants.role_name,
users.name AS role_member,
grants.access_type,
grants.database,
grants.table
FROM system.grants LEFT OUTER JOIN system.role_grants ON grants.role_name = role_grants.granted_role_name
LEFT OUTER JOIN system.users ON role_grants.user_name = users.name

UNION ALL

SELECT grants.user_name,
grants.role_name,
role_grants.role_name AS role_member,
grants.access_type,
grants.database,
grants.table
FROM system.role_grants LEFT OUTER JOIN system.grants ON role_grants.granted_role_name = grants.role_name
WHERE role_grants.user_name is null;

ربط قائمة الأذونات الممنوحة بمستخدمي Console الذين لديهم وصول إلى SQL console

اربط هذه القائمة بمستخدمي Console الذين لديهم وصول إلى SQL console.

a. انتقل إلى Console.

b. حدِّد الخدمة ذات الصلة.

c. حدِّد Settings من القائمة اليسرى.

d. مرّر إلى قسم الوصول إلى SQL console.

e. انقر على رابط عدد المستخدمين الذين لديهم إمكانية الوصول إلى قاعدة البيانات There are # users with access to this service. لعرض قائمة المستخدمين.

مستخدمو المستودع

يكون مستخدمو المستودع مشتركين بين الخدمات ضمن المستودع نفسه. لمزيد من المعلومات، راجع ضوابط الوصول إلى المستودع.

Navigation