English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عندما يتم إنشاء عنصر قاعدة البيانات في أي وقت، يتم تخصيص مالك لهذا العنصر، وعادة ما يكون هو الشخص الذي قام بتنفيذ جملة create.
للبعض الأنواع الأكثر شيوعًا من العناصر، يكون الحالة الافتراضية هي أن المالك (أو المستخدم الإداري) هو الشخص الوحيد الذي يمكنه تعديل أو حذف العنصر. لإعطاء صلاحيات أخرى للمستخدمين أو الأدوار، يجب إعداد الصلاحيات للمستخدم.
في PostgreSQL، يتم تقسيم الصلاحيات إلى أنواع التالية:
SELECT
INSERT
UPDATE
DELETE
TRUNCATE
REFERENCES
TRIGGER
CREATE
CONNECT
TEMPORARY
EXECUTE
USAGE
بناءً على نوع العنصر (جداول، دوال، إلخ)، يتم تطبيق الصلاحيات المحددة على العنصر.
لمنح الصلاحيات للمستخدمين، يمكن استخدام الأمر 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 }
لفهم الصلاحيات، قم بإنشاء مستخدم جديد:
w3codeboxdb=# CREATE USER w3codebox WITH PASSWORD 'password'; CREATE ROLE
المعلومات CREATE ROLE تعني أن مستخدمًا جديدًا "w3codebox" تم إنشاؤه.
إنشاء جدول 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" تم حذفه من قاعدة البيانات.