الفرق بين المراجعتين لصفحة: «SQL/revoke»
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
| سطر 196: | سطر 196: | ||
* [https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9020.htm توثيق REVOKE في محرك Oracle] | * [https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9020.htm توثيق REVOKE في محرك Oracle] | ||
* [https://docs.microsoft.com/en-us/sql/t-sql/statements/revoke-transact-sql توثيق REVOKE في محرك SQLServer] | * [https://docs.microsoft.com/en-us/sql/t-sql/statements/revoke-transact-sql توثيق REVOKE في محرك SQLServer] | ||
[[تصنيف:SQL]] | [[تصنيف:SQL|{{SUBPAGENAME}}]] | ||
[[تصنيف:SQL Administration]] | [[تصنيف:SQL Administration|{{SUBPAGENAME}}]] | ||
[[تصنيف:SQL Users]] | [[تصنيف:SQL Users|{{SUBPAGENAME}}]] | ||
مراجعة 15:41، 28 يناير 2018
يستخدم هذا الأمر لإلغاء صلاحيات الوصول access privileges لمستخدمٍ أو مجموعة مستخدمين أو أكثر، وله إحدى الصيغ العامّة الآتية (بحسب محركات البيانات المختلفة):
في محرك البيانات PostgreSQL
REVOKE { { SELECT | INSERT | UPDATE | DELETE | REFERENCES }
[, ...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] table_name [, ...]
FROM { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] };
إلغاء صلاحية تنفيذ استعلامات SELECT و INSERT و UPDATE و DELETE وإنشاء مفتاح ثانوي عبر الكلمة المفتاحية REFERENCES أو كافة الصلاحيات على الجدول table_name للمستخدم باسم name أو مجموعة مستخدمين GROUP name أو لكافة المستخدمين PUBLIC أو للمستخدم الحالي CURRENT_USER.
REVOKE { { SELECT | INSERT | UPDATE | REFERENCES } ( column_name [, ...] )
[, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) }
ON [ TABLE ] table_name [, ...]
FROM { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] } ;
إلغاء صلاحية تنفيذ استعلامات SELECT و INSERT و UPDATE وإنشاء مفتاح ثانوي عبر الكلمة المفتاحية REFERENCES أو كافة الصلاحيات على العمود column_name (أو أكثر من عمود) في الجدول table_name للمستخدم باسم name أو مجموعة مستخدمين GROUP name أو لكافة المستخدمين PUBLIC أو للمستخدم الحالي.
REVOKE { { CREATE | CONNECT | TEMPORARY} [, ...] | ALL [ PRIVILEGES ] }
ON DATABASE database_name [, ...]
FROM { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] };
إلغاء الصلاحيات بإنشاء العناصر (كالجداول أو الفهارس، ...إلخ.) CREATE أو الاتصال بقاعدة البيانات CONNECT أو إنشاء جداول مؤقتة TEMPORARY في قاعدة البيانات باسم database_name للمستخدم باسم name أو مجموعة مستخدمين GROUP name أو لكافة المستخدمين PUBLIC أو للمستخدم الحالي CURRENT_USER.
REVOKE { EXECUTE | ALL [ PRIVILEGES ] }
ON FUNCTION function_name [ ( [ [ argmode ] [ arg_name ] arg_type [, ...] ] ) ] [, ...]
FROM { [GROUP ] name | PUBLIC | CURRENT_USER [, ...] } ;
إلغاء الصلاحيات بتنفيذ EXECUTE (أو كافة الصلاحيات المتاحة ALL PRIVILEGES) للدالة المحددة باسم function_name (والتي تحدد معاملاتها بالنوع argmode كدخل أو خرج والاسم arg_name ونوع البيانات arg_type) وذلك للمستخدم باسم name أو مجموعة مستخدمين GROUP name أو لكافة المستخدمين PUBLIC أو للمستخدم الحالي CURRENT_USER.
أمثلة
لإلغاء صلاحية إدخال سجلات جديدة للجدول books لكافة المستخدمين يُستخدم الأمر:
REVOKE INSERT ON books FROM PUBLIC;
ولإلغاء كافة الصلاحيات المتعلقة بقاعدة البيانات centre_db للمستخدم الحالي يُستخدَم الأمر:
REVOKE ALL PRIVILEGES ON DATABASE centre_db
FROM CURRENT_USER;
ولإلغاء صلاحية تنفيذ الدالة get_final_bill للمستخدم mohammad يُستخدم الأمر:
REVOKE EXECUTE ON FUNCTION get_final_bill (customer_id int) FROM mohammad;
في محركي البيانات MySQL و Oracle
REVOKE
priv_type [(column_list)]
ON [ {TABLE | FUNCTION} ] priv_level
FROM user
وذلك لإلغاء صلاحية المستخدم user من النوع priv_type على الأعمدة column_list الموجودة في العنصر المحدد (جدول أو دالة) بمستوى معين من الصلاحيات priv_level، وتوضح الجداول الآتية الخيارات الممكنة لكلّ مما سبق.
خيارات نوع الصلاحية priv_type
| الخيار | مهمته |
ALL [PRIVILEGES]
|
كافة الصلاحيات |
ALTER
|
صلاحية تعديل الجدول ALTER TABLE
|
CREATE
|
صلاحية إنشاء قاعدة بيانات جديدة أو جدول جديد |
CREATE USER
|
صلاحية إنشاء مستخدم جديد |
CREATE VIEW
|
صلاحية إنشاء عرض جديد |
DELETE
|
صلاحية الحذف DELETE
|
DROP
|
صلاحية الحذف DROP
|
EXECUTE
|
صلاحية التنفيذ |
INDEX
|
صلاحية إنشاء أو حذف الفهارس |
INSERT
|
صلاحية إضافة سجلات جديدة |
REFERENCES
|
صلاحية ربط الجداول عبر المفتاح الثانوي |
SELECT
|
صلاحية تنفيذ استعلام SELECT |
UPDATE
|
صلاحية تنفيذ استعلام UPDATE
|
خيارات مستوى الصلاحية priv_level
| المستوى | دلالته |
|---|---|
*
|
كافة الجداول في قاعدة البيانات الحالية |
*.*
|
كافة الجداول في كافة قواعد البيانات الموجودة |
db_name.*
|
كافة الجداول الموجودة في قاعدة البيانات db_name |
db_name.tbl_name
|
الجدول tbl_name الموجود في قاعدة البيانات db_name |
tbl_name
|
الجدول tbl_name |
أمثلة
لإلغاء صلاحية إدخال سجلات جديدة للجدول books الموجود في قاعدة البيانات centre_db للمستخدم ahmad يُستخدم الأمر:
REVOKE INSERT ON TABLE centre_db.books FROM ahmad;
ولإلغاء كافة الصلاحيات المتعلقة بكافة الجداول الموجودة في قاعدة البيانات centre_db للمستخدم mohammad يُستخدَم الأمر:
REVOKE ALL PRIVILEGES ON centre_db.* FROM mohammad;
في محرك البيانات SQL Server
REVOKE { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON object ] FROM name [ ,...n ] ;
إذ يمكن إلغاء بعض الصلاحيات أو كلها على الأعمدة المحدد باللائحة column والموجودة في العنصر object من المستخدم باسم name، وتختلف الصلاحيات الملغية بحسب العنصر المحدد object كما هو موضح في الجدول الآتي:
| العنصر | الصلاحيات المتاحة |
| قاعدة بيانات | CREATE DATABASECREATE FUNCTION
|
| دالة تعيد قيمة أوليّة scalar | EXECUTE
|
| دالة تعيد جدول من النتائج | DELETEINSERT
|
| جدول | DELETEINSERT
|
| عرض VIEW | DELETEINSERT
|
وللعودة إلى كافة الأذونات permission التي يتيحها محرك SQL Server تمكن الاستفادة من هذه الصفحة.
أمثلة
لإلغاء صلاحية إنشاء عرض view للمستخدم mohammad في قاعدة البيانات centre_db يُستخدم الأمر:
REVOKE CREATE VIEW ON centre_db FROM mohammad;
ولإلغاء كافة الصلاحيات المتعلقة بالجدول books للمستخدم sarah يُستخدَم الأمر:
REVOKE ALL ON books FROM sarah;
التوافقية
| SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
|---|---|---|---|---|
| نعم | لا | نعم | نعم | نعم |