الانتقال إلى المحتوى الرئيسي
يسحب الامتيازات من المستخدمين أو الأدوار.

الصيغة

سحب الامتيازات من المستخدمين
REVOKE [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} FROM {user | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user | CURRENT_USER} [,...]
سحب الأدوار من المستخدمين
REVOKE [ON CLUSTER cluster_name] [ADMIN OPTION FOR] role [,...] FROM {user | role | CURRENT_USER} [,...] | ALL | ALL EXCEPT {user_name | role_name | CURRENT_USER} [,...]

الوصف

لسحب امتياز معيّن، يمكنك استخدام امتياز ذي نطاق أوسع من الامتياز الذي تنوي سحبه. على سبيل المثال، إذا كان لدى مستخدم امتياز SELECT (x,y)، يمكن للمسؤول تنفيذ الاستعلام REVOKE SELECT(x,y) ... أو REVOKE SELECT * ... أو حتى REVOKE ALL PRIVILEGES ... لسحب هذا الامتياز.

السحب الجزئي للامتيازات

يمكنك سحب جزء من امتياز. على سبيل المثال، إذا كان لدى مستخدم امتياز SELECT *.*، فيمكنك سحب امتياز قراءة البيانات منه لجدولٍ معيّن أو لقاعدة بيانات معيّنة.

أمثلة

امنح حساب المستخدم john امتيازًا لتنفيذ SELECT على جميع قواعد البيانات، باستثناء accounts:
GRANT SELECT ON *.* TO john;
REVOKE SELECT ON accounts.* FROM john;
امنح حساب المستخدم mira امتيازًا يتيح له الاختيار من جميع أعمدة الجدول accounts.staff، باستثناء العمود wage.
GRANT SELECT ON accounts.staff TO mira;
REVOKE SELECT(wage) ON accounts.staff FROM mira;
المقال الأصلي
آخر تعديل في ٢٩ يونيو ٢٠٢٦