English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي لـ PostgreSQL

دليل متقدم لـ PostgreSQL

واجهة PostgreSQL

الحقوق (PRIVILEGES) PostgreSQL

عندما يتم إنشاء عنصر قاعدة البيانات في أي وقت، يتم تخصيص مالك لهذا العنصر، وعادة ما يكون هو الشخص الذي قام بتنفيذ جملة create.

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

في PostgreSQL، يتم تقسيم الصلاحيات إلى أنواع التالية:

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • TRUNCATE

  • REFERENCES

  • TRIGGER

  • CREATE

  • CONNECT

  • TEMPORARY

  • EXECUTE

  • USAGE

بناءً على نوع العنصر (جداول، دوال، إلخ)، يتم تطبيق الصلاحيات المحددة على العنصر.

لمنح الصلاحيات للمستخدمين، يمكن استخدام الأمر GRANT.

بناءً على جملة GRANT

بناءً على جملة GRANT، يمكن استخدام الأمر GRANT لمنح الصلاحيات.

GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
  • privilege − يمكن أن تكون القيمة: SELECT،INSERT،UPDATE،DELETE، RULE،ALL.

  • object − اسم العنصر الذي سيمنح له صلاحية الوصول. العناصر المحتملة تشمل: table، view،sequence.

  • PUBLIC − يعني جميع المستخدمين.

  • GROUP group − منح الصلاحيات لمجموعة المستخدمين.

  • username − اسم المستخدم الذي سيمنح له الصلاحيات. PUBLIC هي شكل مختصر يمثل جميع المستخدمين.

إلا، يمكننا استخدام الأمر REVOKE لسحب الصلاحيات، بناءً على جملة REVOKE:

REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }

مثال على-line

لفهم الصلاحيات، قم بإنشاء مستخدم جديد:

w3codeboxdb=# CREATE USER w3codebox WITH PASSWORD 'password';
CREATE ROLE

المعلومات CREATE ROLE تعني أن مستخدمًا جديدًا "w3codebox" تم إنشاؤه.

مثال على-line

إنشاء جدول COMPANYتحميل ملف SQL لـ COMPANY )، والمحتوى البياني كالتالي:

w3codeboxdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

الآن توزيع الصلاحيات على المستخدم "w3codebox":

w3codeboxdb=# GRANT ALL ON COMPANY TO w3codebox;
GRANT

المعلومات GRANT تعني أن جميع الصلاحيات قد تم توزيعها على "w3codebox".

إليك سحب صلاحيات المستخدم "w3codebox":

w3codeboxdb=# REVOKE ALL ON COMPANY FROM w3codebox;
REVOKE

المعلومات REVOKE تعني أن صلاحيات المستخدم قد تم سحبها.

يمكنك أيضًا حذف المستخدم:

w3codeboxdb=# DROP USER w3codebox;
DROP ROLE

المعلومات DROP ROLE يعني أن المستخدم "w3codebox" تم حذفه من قاعدة البيانات.