اعطای مجوز در SQL
در SQL، می توانید از دستورات مختلفی برای اعطای مجوز به کاربران و نقش ها برای انجام وظایف خاص در پایگاه داده استفاده کنید.
دستورات رایج برای اعطای مجوز عبارتند از:
۱. GRANT:
- برای اعطای مجوز به یک کاربر یا نقش برای انجام یک کار خاص استفاده می شود.
- نحو:
SQL
GRANT <permission> ON <object> TO <user or role>;
- مثال:
SQL
GRANT SELECT ON Customers TO 'user1';
-- به کاربر 'user1' اجازه SELECT بر روی جدول 'Customers' داده می شود.
۲. REVOKE:
- برای لغو مجوز از یک کاربر یا نقش برای انجام یک کار خاص استفاده می شود.
- نحو:
SQL
REVOKE <permission> ON <object> FROM <user or role>;
- مثال:
SQL
REVOKE SELECT ON Customers FROM 'user1';
-- مجوز SELECT از کاربر 'user1' بر روی جدول 'Customers' لغو می شود.
۳. DENY:
- برای جلوگیری از انجام یک کار خاص توسط یک کاربر یا نقش استفاده می شود.
- نحو:
SQL
DENY <permission> ON <object> TO <user or role>;
- مثال:
SQL
DENY INSERT ON Orders TO 'user2';
-- از کاربر 'user2' برای INSERT در جدول 'Orders' جلوگیری می شود.
نکات:
- می توانید از GRANT WITH GRANT OPTION برای اعطای مجوز به یک کاربر یا نقش برای اعطای مجوز به کاربران دیگر استفاده کنید.
- می توانید از GRANT ALL برای اعطای تمام مجوزها به یک کاربر یا نقش بر روی یک شی خاص استفاده کنید.
- می توانید از REVOKE ALL برای لغو تمام مجوزهای یک کاربر یا نقش بر روی یک شی خاص استفاده کنید.
مثال های جامع:
۱. اعطای مجوز SELECT به یک کاربر بر روی تمام جداول در schema ‘public’:
SQL
GRANT SELECT ON ALL TABLES IN SCHEMA 'public' TO 'user1';
۲. اعطای مجوز INSERT, UPDATE, DELETE به یک نقش بر روی یک جدول خاص:
SQL
GRANT INSERT, UPDATE, DELETE ON Customers TO 'sales_team';
۳. جلوگیری از INSERT و UPDATE در یک جدول توسط یک کاربر:
SQL
DENY INSERT, UPDATE ON Products TO 'user3';
۴. لغو تمام مجوزهای یک کاربر بر روی یک schema:
SQL
REVOKE ALL ON SCHEMA 'sales' FROM 'user4';
۵. اعطای مجوز به یک نقش برای اعطای مجوز SELECT به کاربران دیگر:
SQL
GRANT SELECT WITH GRANT OPTION ON Customers TO 'support_team';
با استفاده از دستورات و مثال های ارائه شده، می توانید به طور موثر مجوزهای لازم را به کاربران و نقش ها در پایگاه داده خود اعطا کنید.