تمنح PostgreSQL جميع الامتيازات في المخطط للمستخدم

Tmnh Postgresql Jmy Alamtyazat Fy Almkhtt Llmstkhdm



تعد قواعد البيانات ضرورية ، ومن عمل المسؤول التحكم في الأدوار المختلفة التي يمكن للمستخدمين القيام بها داخل قاعدة بيانات معينة. كجزء من التفويض ، يمكن للمسؤول تحديد كيانات المستخدم داخل قاعدة البيانات ومنح أو إلغاء امتيازات مختلفة للأدوار.

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







كيفية منح الامتيازات للمستخدمين على PostgreSQL

عندما تنشئ دورًا جديدًا ، فإنهم يحصلون على بعض الامتيازات افتراضيًا. ومع ذلك ، تتطلب معظم الامتيازات من المسؤول منحها لمستخدمين مختلفين لتنظيم الوصول والتحكم في المخطط. يمكنك منح جميع الامتيازات دفعة واحدة أو منفصلة.



بالنسبة لهذا البرنامج التعليمي ، فلنقم بإنشاء ملف وظيفة اسم الشيئ لينوكسينت 1 .



$ سودو -iu postgres
# إنشاء دور كلمة مرور linuxhint1 لتسجيل الدخول 'linuxhint' ؛


لاحظ أننا قمنا بتسجيل الدخول باسم postgres ، الدور الافتراضي الذي تم إنشاؤه بمجرد تثبيت PostgreSQL.






مع إنشاء الدور (المستخدم) ، يمكننا سرد الأدوار المتاحة باستخدام الأمر التالي:

# \ ال


سيتم عرض الأدوار المتاحة في شكل جدول.




بوستجرس هو الدور الافتراضي ولديه معظم الامتيازات الممنوحة بالفعل. ومع ذلك ، فإن الدور الجديد ، linuxhint1 ، ليس له امتيازات حتى نمنحه.

1. منح امتياز معين للمستخدم

لا يمكن للدور الذي تم إنشاؤه تعديل المخطط ما لم تسمح بذلك. دعنا نتحقق من ذلك بإنشاء جدول أولاً باعتباره الدور الافتراضي ، postgres.

# إنشاء أسماء الجداول ( يتم إنشاء m_id int دائمًا كما الهوية ، fname vachar ( 100 ) ليس فارغًا ، lname varchar ( 100 ) لا لاغى العمر int ) ؛



يمكنك سرد العلاقات المتاحة ، كما هو موضح أدناه:


بعد ذلك ، افتح صدفة جديدة وسجّل الدخول إلى PostgreSQL باستخدام الدور الآخر ، linuxhint1 ، الذي أنشأناه سابقًا باستخدام الأمر التالي:

$ بسكل -في لينوكسينت 1 postgres



ال يحدد أن الدور هو استخدام قاعدة بيانات Postgres.

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

# تحديد * من الأسماء ؛


تقوم بإرجاع ملف تم رفض الإذن خطأ يمنع المستخدم من الوصول إلى الجدول.


في مثل هذه الحالة ، نحتاج إلى منح امتيازات الدور لتحديد / عرض البيانات من الجدول المحدد باستخدام الصيغة التالية:

# منح الامتياز_اسم_الجدول TO الدور_اسم ؛


لمنح الامتيازات ، استخدم جلسة Postgres.


بمجرد منحك ، حاول إعادة تشغيل الأمر السابق.


هذا هو. لقد تمكنت من منح امتياز التحديد لمستخدم معين.

2. منح جميع الامتيازات في المخطط للمستخدم

حتى الآن ، تمكنا من منح امتياز واحد فقط على المخطط للمستخدم. حسنًا ، هذا لا يكفي. لا يمكن للمستخدم تعديل المخطط ما لم تمنحه جميع الامتيازات ، مثل الإدراج والتحديث.

هناك طرق مختلفة لتحقيق ذلك. أولا ، دعونا منح المستخدم جميع الامتيازات لجدول معين باستخدام الصيغة التالية:

# منح الكل في table_name TO role_name ؛



يمكن للمستخدم التفاعل مع جدول معين وتعديله. ومع ذلك ، لا يمكنهم العمل مع الجداول الأخرى في المخطط.

إلى منح جميع الامتيازات على جميع الجداول في مخطط معين ، استخدم الصيغة التالية:

# منح الكل في كل الجداول في مخطط_اسم_المخطط إلى اسم_المخطط ؛



أخيرًا ، يمكنك ذلك منح امتيازات محددة ، مثل إدراج أو تحديد كافة الجداول في المخطط لدور معين .

# منح الامتياز والاسم على جميع الجداول في مخطط_اسم_المخطط TO الدور_الاسم ؛



يمكن للدور تحديد البيانات في جميع الجداول في المخطط المحدد. هذه هي الطريقة التي تحدد بها الامتيازات التي يجب منحها في المخطط لمستخدمين مختلفين.

استنتاج

PostgreSQL هو نظام DBMS قوي. له ميزات مختلفة ، بما في ذلك السماح للمسؤول بمنح امتيازات متنوعة للمستخدمين. يعني منح جميع الامتيازات على المخطط للمستخدمين السماح للمستخدم بالتعديل والتفاعل مع جميع الجداول في المخطط المحدد. لقد رأينا كيفية تطبيق ذلك وطرق أخرى لمنح الامتيازات على المخطط للأدوار باستخدام بيان GRANT في PostgreSQL.