سطوح دسترسی نقش ها در SQL
در SQL، می توانید از نقش ها برای گروه بندی مجوزها و ساده سازی فرآیند مدیریت دسترسی استفاده کنید.
سطوح دسترسی رایج برای نقش ها عبارتند از:
۱. Database Owner:
- شرح: بالاترین سطح دسترسی است که به نقش اجازه می دهد تمام جنبه های پایگاه داده را مدیریت کند.
- مجوزها:
- ایجاد و حذف پایگاه داده
- ایجاد و حذف کاربران
- اعطای مجوز به سایر کاربران
- مدیریت تمام اشیاء پایگاه داده (جداول، نماها، توابع، رویه ها و …)
۲. Schema Owner:
- شرح: به نقش اجازه می دهد تا اشیاء پایگاه داده را در یک schema خاص مدیریت کند.
- مجوزها:
- ایجاد و حذف اشیاء در schema (جداول، نماها، توابع، رویه ها و …)
- اعطای مجوز به سایر کاربران برای کار با اشیاء در schema
۳. User:
- شرح: به نقش اجازه می دهد تا به پایگاه داده متصل شده و با اشیاء پایگاه داده مطابق با مجوزهای اعطا شده کار کند.
- مجوزها:
- اجرای کوئری های SELECT، INSERT، UPDATE و DELETE
- مشاهده داده ها در جداول
- ذخیره سازی داده ها در جداول
- ویرایش داده ها در جداول
- حذف داده ها از جداول
۴. Guest:
- شرح: پایین ترین سطح دسترسی است که به نقش اجازه می دهد فقط به پایگاه داده متصل شده و کوئری های SELECT را اجرا کند.
- مجوزها:
- اجرای کوئری های SELECT
- مشاهده داده ها در جداول
مثال:
SQL
-- ایجاد یک نقش جدید
CREATE ROLE 'sales_manager';
-- اعطای مجوزهای لازم برای مدیریت جداول مربوط به فروش به نقش 'sales_manager'
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA 'sales' TO 'sales_manager';
-- ایجاد یک کاربر جدید و اعطای نقش 'sales_manager' به آن
CREATE USER 'new_user' WITH PASSWORD 'P@ssw0rd';
GRANT ROLE 'sales_manager' TO 'new_user';
-- کاربر 'new_user' می تواند به جداول مربوط به فروش دسترسی داشته باشد و آنها را مدیریت کند،
-- اما نمی تواند پایگاه داده را ایجاد یا حذف کند یا به کاربران دیگر مجوز اعطا کند.
نکات:
- می توانید سطوح دسترسی را به صورت granular تنظیم کنید. به عنوان مثال، می توانید به یک نقش اجازه SELECT و INSERT در یک جدول خاص را بدهید.
- استفاده از نقش ها به شما کمک می کند تا از اعطای مجوزهای بیش از حد به کاربران جلوگیری کنید.
- می توانید از ترکیب نقش ها برای ایجاد سطوح دسترسی پیچیده استفاده کنید.