SET ROLE في ClickHouse Cloud SQL Console، قد يبدو أن الدور يتغير لاستعلام واحد ثم يعود إلى حالته السابقة في الاستعلام التالي. استخدم دور SQL Console مخصصًا لكل مستخدم عندما تحتاج الأذونات إلى الاستمرار عبر الاستعلامات والجلسات.
الأعراض
- بعد تشغيل
SET ROLE sql_console_developer، تستمر الاستعلامات اللاحقة في التنفيذ باستخدامsql_console_read_only. - تختلف نتائج
currentRolesوenabledRolesوdefaultRolesمن استعلام إلى آخر. - لا يؤدي تشغيل
SET ROLEمع استعلام آخر إلى الاحتفاظ بالدور المحدد باستمرار. - يعرض
SHOW GRANTSالأدوار المتوقعة، لكن أذوناتها غير مفعّلة.
سبب حدوث ذلك
SET ROLE الأدوار المفعّلة للجلسة الحالية، لكنه لا يحفظ حالة الجلسة هذه لطلبات SQL Console اللاحقة. لذلك، قد يُنفَّذ استعلام لاحق من دون الدور الذي فعّله طلب سابق.
لهذا السبب، لا تستخدم SET ROLE كآلية دائمة للتحكم في الوصول في SQL Console.
آلية عمل أدوار مستخدمي SQL Console
تهيئة الأذونات الدائمة
sql_console_admin أو مستخدم آخر لديه امتياز ACCESS MANAGEMENT.
1
إنشاء الدور المخصص
ينشئ المثال التالي دورًا مخصصًا باسم
sql_console_developer ويمنحه أذونات على my_database:sql_console_developer دورٌ مستخدم في المثال، وليس دورًا مضمّنًا في ClickHouse Cloud. يمكنك بدلًا من ذلك استخدام دور مخصص موجود يتضمن الأذونات التي يحتاج إليها المستخدم.2
إنشاء دور SQL Console لكل مستخدم
أنشئ دورًا يتضمن اسمه عنوان البريد الإلكتروني الكامل للمستخدم:تُعد علامات backticks مطلوبة لأن اسم الدور يحتوي على أحرف خاصة.
3
منح الدور المخصص
امنح الدور المطلوب لدور SQL Console الخاص بالمستخدم:يمكنك منح أدوار متعددة عند الحاجة:
4
بدء جلسة جديدة في SQL Console
اطلب من المستخدم تسجيل الخروج ثم تسجيل الدخول مجددًا إلى SQL Console، أو تحديث علامة تبويب المتصفح. في الجلسة الجديدة، يطبّق ClickHouse Cloud يجب أن تتضمن النتائج الأذونات الممنوحة عبر
sql-console-role:user@example.com على sql-console:user@example.com، ولا يلزم تنفيذ عبارة SET ROLE.تحقق من الأدوار النشطة:sql-console-role:user@example.com.تجنب تعديل الأدوار المُدارة
sql_console_admin أو sql_console_read_only لمنح أذونات مخصصة. يدير ClickHouse Cloud هذه الأدوار المضمنة. استخدم بدلاً من ذلك sql-console-role:<email> لتعيين أذونات لكل مستخدم.
للاطلاع على أمثلة عامة لإدارة الأدوار، راجع استعلامات شائعة لإدارة الوصول.