آموزش گام‌به‌گام SQL Server با دیتابیس نمونه‌ی AdventureWorks | از مبتدی تا پیشرفته | (قسمت ۱۱)

SQL Server Training with AdventureWorks Sample Database
SQL Server Training with AdventureWorks Sample Database

درس ۱۱: مدیریت کاربران و سطح دسترسی‌ها در SQL Server

🎯 هدف درس:

در این درس یاد می‌گیرید چگونه کاربران را در SQL Server ایجاد، مدیریت و سطوح دسترسی آن‌ها را کنترل کنید. مدیریت صحیح امنیتی، از دسترسی غیرمجاز به داده‌ها جلوگیری می‌کند و بخش مهمی از نگهداری پایگاه داده محسوب می‌شود.

📘 مفهوم نظری:

۱. ایجاد کاربر (Login) در سطح سرور:

CREATE LOGIN testUser
WITH PASSWORD = '12345@Pass';

کاربرد: این دستور یک حساب ورود جدید در سطح سرور ایجاد می‌کند.

۲. ایجاد کاربر در سطح پایگاه داده:

USE AdventureWorks;
CREATE USER testUser FOR LOGIN testUser;

کاربرد: کاربر به پایگاه داده خاص متصل می‌شود و می‌تواند داده‌ها را بر اساس نقش خود ببیند یا تغییر دهد.

۳. اعطای دسترسی به جدول خاص:

GRANT SELECT ON Person.Person TO testUser;

کاربرد: کاربر فقط اجازه خواندن از جدول مشخص‌شده را دارد.

۴. جلوگیری از دسترسی (REVOKE و DENY):

REVOKE SELECT ON Person.Person FROM testUser;
DENY DELETE ON Person.Person TO testUser;

تفاوت: REVOKE دسترسی را برمی‌دارد، DENY به‌طور صریح آن را مسدود می‌کند.

۵. نقش‌های امنیتی آماده (Database Roles):

  • db_datareader – مجوز فقط خواندن همه جدول‌ها
  • db_datawriter – مجوز نوشتن در جدول‌ها
  • db_owner – کنترل کامل روی پایگاه داده
EXEC sp_addrolemember 'db_datareader', 'testUser';

۶. حذف کاربر یا Login:

DROP USER testUser;
DROP LOGIN testUser;

۷. مشاهده لیست کاربران و نقش‌ها:

SELECT name, type_desc FROM sys.database_principals;

۸. نقش‌های سطح سرور (Server Roles):

  • sysadmin – دسترسی کامل به کل سرور
  • serveradmin – تنظیمات کلی سرور
  • securityadmin – مدیریت کاربران و دسترسی‌ها
  • setupadmin – نصب و پیکربندی لینک‌ها
ALTER SERVER ROLE sysadmin ADD MEMBER testUser;

۹. تغییر رمز عبور کاربر:

ALTER LOGIN testUser WITH PASSWORD = 'NewPass@2025';

۱۰. استفاده از Schema برای تفکیک داده‌ها:

CREATE SCHEMA Sales AUTHORIZATION testUser;

کاربرد: برای جداسازی منطقی داده‌ها بین بخش‌های مختلف سازمان و کنترل سطح دسترسی بهتر.

🧠 تمرین‌های عملی:

  • تمرین ۱: ایجاد کاربر جدید به نام student1 با رمز عبور دلخواه.
  • تمرین ۲: اضافه کردن کاربر به پایگاه داده AdventureWorks.
  • تمرین ۳: اعطای دسترسی SELECT فقط روی جدول Person.Person.
  • تمرین ۴: بررسی نقش کاربر با کوئری sys.database_principals.
  • تمرین ۵ (چالشی): ایجاد Schema جدید و اختصاص مالکیت آن به کاربر جدید.

💡 پاسخ تمرین‌های عملی:

-- تمرین ۱
CREATE LOGIN student1 WITH PASSWORD = 'Strong@123';

-- تمرین ۲
USE AdventureWorks;
CREATE USER student1 FOR LOGIN student1;

-- تمرین ۳
GRANT SELECT ON Person.Person TO student1;

-- تمرین ۴
SELECT name, type_desc FROM sys.database_principals;

-- تمرین ۵ (چالشی)
CREATE SCHEMA Training AUTHORIZATION student1;

📚 جمع‌بندی درس:

در این درس با مدیریت امنیت SQL Server آشنا شدید — از ساخت Login و User گرفته تا تعریف نقش‌ها و سطوح دسترسی. همچنین یاد گرفتید چگونه می‌توان با Roleها و Schemaها کنترل دقیقی بر کاربران اعمال کرد. در درس بعد، سراغ گزارش‌گیری و ساخت Viewهای آماری می‌رویم تا داده‌ها را به شکل کاربردی‌تری نمایش دهیم.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

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