دورة تعليمية كاملة حول الأدوار والأذونات في Postgresql
دورة تعليمية كاملة حول الأدوار والأذونات في Postgresql

دليل تعليمي كامل حول الأدوار والأذونات في PostgreSQL

في هذه المقالة، سوف تتعلم بطريقة كاملة وعملية كيفية إنشاء الأدوار ومنح الأذونات وإدارة الأذونات وإنشاء أدوار المجموعة والتحكم في الوصول على PostgreSQL.
0 الأسهم
0
0
0
0

مقدمة

PostgreSQL هي قاعدة بيانات قوية ومُصممة خصيصًا للمؤسسات، وتتميز بنظام مُتقدم لإدارة المستخدمين ومستويات الوصول. في PostgreSQL، لا يوجد ما يُسمى "مستخدم" بالمعنى التقليدي؛ فكل شيء هو كيان واحد. دور والتي يمكن أن يكون لها سلوك مستخدم أو مجموعة.
يؤدي الاستخدام الصحيح للأدوار والأذونات إلى زيادة الأمان وإدارة قواعد البيانات بشكل أفضل ومنع الوصول غير المرغوب فيه - خاصة عند تشغيل PostgreSQL على VPS.


1. المتطلبات الأساسية للعمل مع الأدوار والأذونات

للبدء، يجب أن يكون لديك ما يلي:

  • خادم VPS يعمل بنظام Linux (مثل Ubuntu 20.04 أو 22.04)

  • تم تثبيت PostgreSQL

  • وصول المستخدم الجذر أو sudo

  • مقدمة أساسية لسطر الأوامر

تسجيل الدخول إلى حساب postgres:

sudo -i -u postgres psql

2. عرض الأدوار في 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) قم أولاً بتعيين كلمة مرور الدور:

\password app_user

2) الخروج من psql:

\q

3) تسجيل الدخول كدور جديد:

psql -U app_user -d postgres -h 127.0.0.1 -W

8. إنشاء جدول لاختبار الأذونات

إنشاء جدول الموظفين (معرف المفتاح الأساسي التسلسلي، الاسم varchar(50)، علامة زمنية created_at DEFAULT NOW() );

9. منح الأذونات (GRANT) في PostgreSQL

منح إذن محدد:

منح اختيار الموظفين لتطبيق المستخدم؛;

إذن الإدراج:

منح إدراج الموظفين إلى app_user؛;

منح كافة الامتيازات:

منح جميع الموظفين إلى app_user؛;

إتاحة الوصول لجميع المستخدمين (عام):

منح اختيار للموظفين للعامة؛;

10. عرض الأذونات لكل جدول

\z الموظفين

11. إلغاء الأذونات (REVOKE)

إلغاء إذن الإدراج من دور محدد:

إلغاء إدراج الموظفين من app_user؛;

إلغاء جميع الأذونات:

إلغاء كافة الموظفين من app_user؛;

إزالة الأذونات العامة:

إلغاء تحديد الموظفين من الجمهور؛;

12. دور المجموعة في PostgreSQL

دور المجموعة هو دور تكون فيه الأدوار الأخرى أعضاءً، مثل مجموعات Linux.

1) إنشاء دور المجموعة:

إنشاء دور dev_team؛;

2) إضافة المستخدمين إلى المجموعة:

منح فريق التطوير إلى مستخدم التطبيق؛ منح فريق التطوير إلى مستخدم الواجهة الخلفية؛;

3) التحقق من العضوية:

\دو

4) استخدام دور المجموعة:

تعيين دور فريق التطوير؛;

من هذه اللحظة، سيتم تفعيل جميع الأذونات التي يمتلكها dev_team.

5) الوراثة التلقائية باستخدام INHERIT

ALTER ROLE app_user مع الوراثة؛;

13. نقل ملكية الكائنات قبل حذف الدور

إذا كنت تريد حذف دور ولكن الجدول أو قاعدة البيانات تنتمي إليه:

تغيير مالك الجدول:

ALTER TABLE employees OWNER TO postgres؛;

ثم احذف الدور:

إسقاط دور فريق التطوير؛;

14. نصائح أمنية مهمة عند استخدام الأدوار على VPS

  • يجب أن يكون لكل خدمة (Backend، Cronjob، Worker) دور منفصل.

  • كنصيحة أمنية، استخدم الأدوار ذات الوصول المنخفض.

  • في هندسة قاعدة البيانات، لا يوجد لأي تطبيق دور. المستخدم الخارق لا تعطي.

  • يجب أن تكون كلمات مرور الأدوار قوية ولها تاريخ انتهاء صلاحية.

  • على سبيل المثال، استخدم دائمًا المجموعات لإدارة الوصول.


خاتمة

كل شيء تقريبًا في PostgreSQL قائم على الأدوار. يمكنك إنشاء مستخدمين ومجموعات وأدوار نظام وتطبيقات باستخدام نموذج إداري واحد. كما أن الأدوات منحة و إلغاء أنها توفر التحكم الكامل في الجداول والمخططات وقواعد البيانات والوظائف.

إن إدارة الأدوار بشكل صحيح في PostgreSQL مهمة جدًا، وخاصةً على VPS، لأن أمان واستقرار نظام قاعدة البيانات بأكمله يعتمد عليها.

[المجموع: 0   متوسط: 0/5]
اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً