مقدمة
PostgreSQL هي قاعدة بيانات قوية ومُصممة خصيصًا للمؤسسات، وتتميز بنظام مُتقدم لإدارة المستخدمين ومستويات الوصول. في PostgreSQL، لا يوجد ما يُسمى "مستخدم" بالمعنى التقليدي؛ فكل شيء هو كيان واحد. دور والتي يمكن أن يكون لها سلوك مستخدم أو مجموعة.
يؤدي الاستخدام الصحيح للأدوار والأذونات إلى زيادة الأمان وإدارة قواعد البيانات بشكل أفضل ومنع الوصول غير المرغوب فيه - خاصة عند تشغيل PostgreSQL على VPS.
1. المتطلبات الأساسية للعمل مع الأدوار والأذونات
للبدء، يجب أن يكون لديك ما يلي:
خادم VPS يعمل بنظام Linux (مثل Ubuntu 20.04 أو 22.04)
تم تثبيت PostgreSQL
وصول المستخدم الجذر أو sudo
مقدمة أساسية لسطر الأوامر
تسجيل الدخول إلى حساب postgres:
sudo -i -u postgres psql2. عرض الأدوار في PostgreSQL
لعرض جميع الأدوار المتاحة:
\دوعينة الإخراج:
اسم الدور | السمات | عضو في ------------+---------------------------------------------+----------- postgres | مستخدم خارق، إنشاء دور، إنشاء قاعدة بيانات، تكرار | {}3. إنشاء دور جديد
الطريقة 1: إنشاء دور من داخل psql
إنشاء دور user_demo؛;هذا الدور لا يملك إذن تسجيل الدخول بعد.
الطريقة 2: إنشاء دور بميزات محددة
مثال: الدور الذي يمكن تسجيل الدخول إليه باستخدام كلمة مرور:
إنشاء دور user_demo باستخدام كلمة مرور تسجيل الدخول 'StrongPass123'؛;
الطريقة 3: إنشاء دور عبر CLI
إنشاء مستخدم --تفاعليفي هذه الطريقة، سيتم سؤالك:
هل هو مستخدم خارق؟
هل يجوز إنشاء قاعدة بيانات؟
هل يجوز إنشاء الأدوار؟
4. حذف دور في PostgreSQL
حذف الدور:
إسقاط الدور user_demo؛;لتجنب الخطأ إذا لم يكن الدور موجودًا:
إسقاط الدور إذا كان موجودًا user_demo؛;5. الإعدادات عند إنشاء دور
يتيح لك PostgreSQL تحديد الخصائص المهمة عند إنشاء دور:
إنشاء دور app_user باستخدام LOGIN CREATEDB NOCREATEROLE PASSWORD 'ExamplePass';أهم الصفات:
| ميزة | توضيح |
|---|---|
| تسجيل الدخول | إذن الوصول إلى قاعدة البيانات |
| إنشاء قاعدة بيانات | إذن إنشاء قاعدة البيانات |
| كرييترول | الإذن بإنشاء دور |
| ورث | وراثة الإذن من دور الأم |
| المستخدم الخارق | الوصول الكامل |
| كلمة المرور | كلمة المرور |
| صالحة حتى | تعيين تاريخ انتهاء الصلاحية |
6. تغيير إعدادات الدور باستخدام ALTER ROLE
إذا كنت تريد تغيير أذونات الدور لاحقًا:
إضافة تسجيل الدخول:
تغيير دور التطبيق_المستخدم مع تسجيل الدخول؛;إزالة القدرة على تسجيل الدخول:
تغيير دور التطبيق_المستخدم مع عدم تسجيل الدخول؛;تغيير كلمة المرور:
ALTER ROLE app_user WITH PASSWORD 'كلمة مرور جديدة!';7. قم بتسجيل الدخول إلى PostgreSQL بدور آخر
1) قم أولاً بتعيين كلمة مرور الدور:
2) الخروج من psql:
3) تسجيل الدخول كدور جديد:
8. إنشاء جدول لاختبار الأذونات
9. منح الأذونات (GRANT) في PostgreSQL
منح إذن محدد:
إذن الإدراج:
منح كافة الامتيازات:
إتاحة الوصول لجميع المستخدمين (عام):
10. عرض الأذونات لكل جدول
11. إلغاء الأذونات (REVOKE)
إلغاء إذن الإدراج من دور محدد:
إلغاء جميع الأذونات:
إزالة الأذونات العامة:
12. دور المجموعة في PostgreSQL
دور المجموعة هو دور تكون فيه الأدوار الأخرى أعضاءً، مثل مجموعات Linux.
1) إنشاء دور المجموعة:
2) إضافة المستخدمين إلى المجموعة:
3) التحقق من العضوية:
4) استخدام دور المجموعة:
من هذه اللحظة، سيتم تفعيل جميع الأذونات التي يمتلكها dev_team.
5) الوراثة التلقائية باستخدام INHERIT
13. نقل ملكية الكائنات قبل حذف الدور
إذا كنت تريد حذف دور ولكن الجدول أو قاعدة البيانات تنتمي إليه:
تغيير مالك الجدول:
ثم احذف الدور:
14. نصائح أمنية مهمة عند استخدام الأدوار على VPS
يجب أن يكون لكل خدمة (Backend، Cronjob، Worker) دور منفصل.
كنصيحة أمنية، استخدم الأدوار ذات الوصول المنخفض.
في هندسة قاعدة البيانات، لا يوجد لأي تطبيق دور.
المستخدم الخارقلا تعطي.يجب أن تكون كلمات مرور الأدوار قوية ولها تاريخ انتهاء صلاحية.
على سبيل المثال، استخدم دائمًا المجموعات لإدارة الوصول.
خاتمة
كل شيء تقريبًا في PostgreSQL قائم على الأدوار. يمكنك إنشاء مستخدمين ومجموعات وأدوار نظام وتطبيقات باستخدام نموذج إداري واحد. كما أن الأدوات منحة و إلغاء أنها توفر التحكم الكامل في الجداول والمخططات وقواعد البيانات والوظائف.
إن إدارة الأدوار بشكل صحيح في PostgreSQL مهمة جدًا، وخاصةً على VPS، لأن أمان واستقرار نظام قاعدة البيانات بأكمله يعتمد عليها.









