المستخدم المسؤول
default يُنشأ عند إنشاء الخدمة. وتُحدَّد كلمة المرور عند إنشاء الخدمة، ويمكن لمستخدمي ClickHouse Cloud الذين لديهم دور Admin إعادة تعيينها.
عند إضافة مستخدمين إضافيين لـ SQL إلى خدمة ClickHouse Cloud الخاصة بك، فسيحتاجون إلى اسم مستخدم وكلمة مرور لـ SQL. وإذا أردت منحهم امتيازات بمستوى إداري، فعيّن للمستخدمين الجدد الدور default_role. على سبيل المثال، لإضافة المستخدم clickhouse_admin:
default. وبدلًا من ذلك، ستُنفَّذ هذه العبارات باسم مستخدم يُسمّى sql-console:${cloud_login_email}، حيث يشير cloud_login_email إلى البريد الإلكتروني للمستخدم الذي يُشغّل الاستعلام حاليًا.يكون لدى مستخدمي SQL Console الذين يُنشَؤون تلقائيًا الدور default.المصادقة بدون كلمة مرور
sql_console_admin بأذونات مطابقة لـ default_role، وsql_console_read_only بأذونات للقراءة فقط.
يُسنَد الدور sql_console_admin إلى مستخدمي Admin افتراضيًا، لذا لا يتغير شيء بالنسبة إليهم. ومع ذلك، يتيح الدور sql_console_read_only منح المستخدمين غير المشرفين حق وصول للقراءة فقط أو حق وصول كامل إلى أي مثيل. ويجب على مستخدم Admin تهيئة هذا الوصول. ويمكن تعديل الأدوار باستخدام الأمرين GRANT وREVOKE لتلائم متطلبات كل مثيل بشكل أفضل، كما ستُحفَظ أي تعديلات تُجرى على هذه الأدوار.
التحكم الدقيق في الوصول
sql_console_* الجديدة إلى المستخدمين، يجب إنشاء أدوار قاعدة البيانات الخاصة بمستخدمي SQL Console التي تطابق مساحة الاسم sql-console-role:<email>. على سبيل المثال:
sql_console_sa_role وsql_console_pm_role، ومنحها لمستخدمين محددين. على سبيل المثال:
اختبر امتيازات المسؤول
default ثم سجّل الدخول مرة أخرى باستخدام المستخدم clickhouse_admin.
يجب أن ينجح كل ما يلي:
المستخدمون غير المشرفين
التحضير
إنشاء قاعدة بيانات وجدول وصفوف تجريبية
إنشاء قاعدة بيانات اختبار
إنشاء جدول
إدراج صفوف تجريبية في الجدول
التحقق من الجدول
إنشاء column_user
إنشاء row_user
إنشاء الأدوار
- سيتم إنشاء أدوار لامتيازات مختلفة، مثل الأعمدة والصفوف
- سيتم منح الامتيازات لهذه الأدوار
- سيتم إسناد المستخدمين إلى كل دور
أنشئ دورًا لتقييد مستخدمي هذا الدور بحيث لا يمكنهم رؤية سوى column1 في قاعدة البيانات db1 والجدول table1:
اضبط الامتيازات للسماح بعرض column1
أضف المستخدم column_user إلى الدور column1_users
أنشئ دورًا لتقييد مستخدمي هذا الدور بحيث لا يمكنهم رؤية إلا الصفوف المحددة، وفي هذه الحالة الصفوف التي تحتوي على A في column1 فقط
أضف row_user إلى الدور A_rows_users
أنشئ سياسة للسماح بعرض الصفوف التي تكون فيها قيمة column1 هي A فقط
اضبط امتيازات قاعدة البيانات والجدول
امنح أذونات صريحة للأدوار الأخرى حتى تظل قادرة على الوصول إلى جميع الصفوف
التحقق
اختبار امتيازات الدور باستخدام مستخدم مقيّد بالأعمدة
سجّل الدخول إلى عميل ClickHouse باستخدام المستخدم clickhouse_admin
تحقّق من إمكانية الوصول إلى قاعدة البيانات والجدول وجميع الصفوف باستخدام المستخدم المسؤول.
سجّل الدخول إلى عميل ClickHouse باستخدام المستخدم column_user
اختبر SELECT باستخدام جميع الأعمدة
id وcolumn1تحقّق من استعلام SELECT باستخدام الأعمدة المحددة والمسموح بها فقط:
اختبار امتيازات الدور باستخدام مستخدم مقيَّد على مستوى الصفوف
سجّل الدخول إلى عميل ClickHouse باستخدام row_user
اعرض الصفوف المتاحة
B في column1.تعديل المستخدمين والأدوار
role1 يتيح فقط تنفيذ SELECT على column1 وكان role2 يتيح تنفيذ SELECT على column1 وcolumn2، فسيكون لدى المستخدم حق الوصول إلى كلا العمودين.
باستخدام حساب مسؤول، أنشئ مستخدمًا جديدًا لتقييد الوصول حسب الصف والعمود مع أدوار افتراضية
أزل الامتيازات السابقة من الدور A_rows_users
اسمح للدور A_row_users بتنفيذ SELECT على column1 فقط
سجّل الدخول إلى عميل ClickHouse باستخدام row_and_column_user
اختبر باستخدام جميع الأعمدة:
اختبر باستخدام الأعمدة المسموح بها فقط:
استكشاف الأخطاء وإصلاحها
عرض الامتيازات والأدوار الخاصة بمستخدم
عرض الأدوار في ClickHouse
عرض السياسات
الاطلاع على كيفية تعريف سياسة ما والامتيازات الحالية
أوامر نموذجية لإدارة الأدوار والسياسات والمستخدمين
- حذف الامتيازات
- حذف السياسات
- إلغاء تعيين المستخدمين من الأدوار
- حذف المستخدمين والأدوار