آموزش

سطوح دسترسی کاربران  

سطوح دسترسی در SQL

در SQL، سطوح مختلفی از دسترسی برای کنترل نحوه تعامل کاربران با پایگاه داده وجود دارد. این سطوح دسترسی به شما کمک می کنند تا امنیت پایگاه داده خود را حفظ کرده و از دسترسی غیرمجاز به داده ها جلوگیری کنید.

سطوح اصلی دسترسی در SQL عبارتند از:

  • Database Owner: بالاترین سطح دسترسی است که به کاربر اجازه می دهد تمام جنبه های پایگاه داده را مدیریت کند، از جمله ایجاد و حذف پایگاه داده، ایجاد و حذف کاربران، و اعطای مجوز به سایر کاربران.
  • Schema Owner: به کاربر اجازه می دهد تا اشیاء پایگاه داده را در یک schema خاص مدیریت کند، مانند جداول، نماها، توابع و رویه ها.
  • User: به کاربر اجازه می دهد تا به پایگاه داده متصل شده و با اشیاء پایگاه داده مطابق با مجوزهای اعطا شده کار کند.
  • Guest: پایین ترین سطح دسترسی است که به کاربر اجازه می دهد فقط به پایگاه داده متصل شده و کوئری های SELECT را اجرا کند.

علاوه بر سطوح اصلی، SQL از مجوزهای جداگانه ای برای کنترل وظایف خاص استفاده می کند:

  • GRANT: برای اعطای مجوز به یک کاربر برای انجام یک کار خاص.
  • REVOKE: برای لغو مجوز از یک کاربر برای انجام یک کار خاص.
  • DENY: برای جلوگیری از انجام یک کار خاص توسط کاربر.

نکات مهم:

  • همیشه باید اصل کمترین امتیاز را رعایت کنید. به کاربران فقط مجوزهایی را بدهید که برای انجام وظایفشان ضروری است.
  • به طور مرتب مجوزها را بررسی کنید و در صورت نیاز آنها را به روز کنید.
  • از رمزهای عبور قوی برای محافظت از حساب های کاربری استفاده کنید.

 

سطوح دسترسی کاربران

در ادامه به شرح سطوح دسترسی رایج در SQL به همراه مثال های جامع از طریق دستورات SQL می پردازیم:

1. Database Owner:

  • شرح: بالاترین سطح دسترسی است که به کاربر اجازه می دهد تمام جنبه های پایگاه داده را مدیریت کند.
  • مجوزها:
    • ایجاد و حذف پایگاه داده
    • ایجاد و حذف کاربران
    • اعطای مجوز به سایر کاربران
    • مدیریت تمام اشیاء پایگاه داده (جداول، نماها، توابع، رویه ها و …)
  • مثال:
SQL
-- ایجاد یک کاربر جدید
CREATE USER 'new_user' WITH PASSWORD 'P@ssw0rd';

-- اعطای نقش Database Owner به کاربر جدید
GRANT db_owner TO 'new_user';

2. Schema Owner:

  • شرح: به کاربر اجازه می دهد تا اشیاء پایگاه داده را در یک schema خاص مدیریت کند.
  • مجوزها:
    • ایجاد و حذف اشیاء در schema (جداول، نماها، توابع، رویه ها و …)
    • اعطای مجوز به سایر کاربران برای کار با اشیاء در schema
  • مثال:
SQL
-- ایجاد یک schema جدید
CREATE SCHEMA 'sales';

-- اعطای مالکیت schema 'sales' به کاربر 'sales_user'
GRANT OWNERSHIP ON SCHEMA 'sales' TO 'sales_user';

-- اعطای مجوز ایجاد و حذف جداول در schema 'sales' به کاربر 'sales_user'
GRANT CREATE TABLE, DROP TABLE ON SCHEMA 'sales' TO 'sales_user';

3. User:

  • شرح: به کاربر اجازه می دهد تا به پایگاه داده متصل شده و با اشیاء پایگاه داده مطابق با مجوزهای اعطا شده کار کند.
  • مجوزها:
    • اجرای کوئری های SELECT، INSERT، UPDATE و DELETE
    • مشاهده داده ها در جداول
    • ذخیره سازی داده ها در جداول
    • ویرایش داده ها در جداول
    • حذف داده ها از جداول
  • مثال:
SQL
-- اعطای مجوز SELECT به کاربر 'user1' بر روی جدول 'Customers'
GRANT SELECT ON Customers TO 'user1';

-- اعطای مجوز INSERT, UPDATE, DELETE به کاربر 'user2' بر روی جدول 'Orders'
GRANT INSERT, UPDATE, DELETE ON Orders TO 'user2';

4. Guest:

  • شرح: پایین ترین سطح دسترسی است که به کاربر اجازه می دهد فقط به پایگاه داده متصل شده و کوئری های SELECT را اجرا کند.
  • مجوزها:
    • اجرای کوئری های SELECT
    • مشاهده داده ها در جداول
  • مثال:
SQL
-- ایجاد یک نقش Guest
CREATE ROLE 'guest';

-- اعطای مجوز SELECT به نقش 'guest' بر روی تمام جداول در schema 'public'
GRANT SELECT ON ALL TABLES IN SCHEMA 'public' TO 'guest';

-- اعطای نقش 'guest' به کاربر 'guest_user'
GRANT ROLE 'guest' TO 'guest_user';

نکته:

سطوح دسترسی ذکر شده فقط نمونه ای از سطوح دسترسی رایج در SQL هستند. شما می توانید سطوح دسترسی را مطابق با نیازهای خودتان تعریف کنید.

 

نمایش بیشتر

نوشته‌های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا