دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل pageSetupDialog در سی شارپ
1404/05/03 -
نقش (Role) در Sql Server
1404/05/02 -
کنترل OpenFileDialog در سیشارپ
1404/04/31 -
ایجاد و مدیریت کاربر (User) در Sql Server
1404/04/30 -
کنترل MonthCalendar در سیشارپ
1404/04/29 -
مدیریت کاربران (Users ) در SQL Server
1404/04/28
ایجاد و مدیریت کاربر (User) در Sql Server

مقدمه
در سیستمهای مدیریت پایگاه داده مانند SQL Server، امنیت و مدیریت دسترسی به دادهها از اهمیت بالایی برخوردار است.
برای کنترل دسترسی کاربران به پایگاه داده، باید ابتدا حسابهای کاربری ایجاد کرده و سطوح دسترسی مناسب برای هر یک از آنها تعریف کنیم.
این فرآیند با استفاده از مفاهیم Login و User انجام میشود.
📌 مفهوم User در SQL Server
در SQL Server، مفاهیم زیر با هم تفاوت دارند:
Login
به حساب کاربریای گفته میشود که اجازه دسترسی به SQL Server را دارد (در سطح سرور).
User
به حسابی گفته میشود که در سطح یک دیتابیس مشخص تعریف میشود و دسترسی به اشیای پایگاه داده را کنترل میکند.
بهعبارتی:
Login برای ورود به سرور
User برای دسترسی به دیتابیس
انواع کاربران (User Types)
SQL User
کاربری که از طریق Login وارد شده و به یک دیتابیس خاص وصل شده است.
Windows User
کاربری که با استفاده از Windows Authentication تعریف شده است.
Contained User
کاربری که مستقیماً در یک دیتابیس تعریف شده و وابسته به Login نیست (برای دیتابیسهای مستقل).
🛠 مراحل ایجاد User در SQL Server
✅ مرحله ۱: ایجاد Login (در سطح سرور)
CREATE LOGIN test_zoheir WITH PASSWORD = 'df#@%426a!';
✅ مرحله ۲: ایجاد User در یک دیتابیس خاص
ابتدا به دیتابیس مورد نظر بروید:
USE TestDB;
GO
سپس:
CREATE USER test_user FOR LOGIN test_zoheir;
اکنون test_user به دیتابیس TestDB متصل شده است.
🎯 اختصاص نقش (Role) به کاربر
ALTER ROLE db_datareader ADD MEMBER test_user;
ALTER ROLE db_datawriter ADD MEMBER test_user;
db_datareader: اجازه خواندن دادهها
db_datawriter: اجازه نوشتن دادهها
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
⇐همین حالا شروع کنید و به دنیای دادهها بپیوندید!
✏️ بهروزرسانی و تغییرات کاربر
🔄 تغییر نام کاربر
ALTER USER test_user WITH NAME = new_test_user;
🔄 تغییر Login مرتبط با User
ALTER USER new_test_user WITH LOGIN =test_zoheir ;
🗑 حذف User از دیتابیس
DROP USER test_user;
⚠️ توجه: قبل از حذف، مطمئن شوید کاربر به object مهمی متصل نباشد و Login از سرور حذف نشده باشد.
💡 مثالهای کاربردی User در SQL Server
🎓 مثال ۱: ایجاد Login و User با دسترسی خواندن اطلاعات
CREATE LOGIN reader_login WITH PASSWORD = 'Reader@123!';
USE SalesDB;
CREATE USER reader_user FOR LOGIN reader_login;
ALTER ROLE db_datareader ADD MEMBER reader_user;
🎓 مثال ۲: ایجاد کاربر فقط برای نوشتن داده
CREATE LOGIN writer_login WITH PASSWORD = 'Writer@123!';
USE SalesDB;
CREATE USER writer_user FOR LOGIN writer_login;
ALTER ROLE db_datawriter ADD MEMBER writer_user;
🎓 مثال ۳: ایجاد User مستقل (Contained User)
USE ContainedDB;
CREATE USER standalone_user WITH PASSWORD = 'Standalone123!';
این نوع کاربر بدون نیاز به Login وارد دیتابیس میشود.
❓ سوالات متداول User در SQL Server
1. تفاوت بین Login و User چیست؟
Login در سطح سرور ایجاد میشود، اما User در سطح دیتابیس تعریف میشود. Login بدون User نمیتواند به دیتابیس دسترسی داشته باشد.
2. آیا میتوان چند User برای یک Login تعریف کرد؟
بله، میتوان یک Login را به چند دیتابیس وصل کرد و در هر دیتابیس یک User متفاوت برای آن تعریف نمود.
3. User حذف شود، آیا Login هم حذف میشود؟
خیر، حذف User تنها در سطح دیتابیس انجام میشود. Login همچنان در سرور باقی میماند.
4. چطور میتوان دید که یک User به چه Roleهایی عضو است؟
با کوئری زیر میتوانید نقشهای کاربر را ببینید:
SELECT dp.name AS DatabaseRole, mp.name AS UserName
FROM sys.database_role_members rm
JOIN sys.database_principals dp ON rm.role_principal_id = dp.principal_id
JOIN sys.database_principals mp ON rm.member_principal_id = mp.principal_id
WHERE mp.name = 'test_user';
📝 تمرین برای دانشجو برای تسلط در مبحث User در SQL Server
یک Login به نام student_login ایجاد کنید.
یک User به نام student_user در دیتابیس TrainingDB ایجاد کرده و فقط دسترسی خواندن به جداول را بدهید.
دسترسی نوشتن به کاربر را اضافه کرده و سپس حذف نمایید.
کاربر را Rename کنید.
کاربر را حذف کرده و بررسی کنید که Login همچنان وجود دارد یا نه.
✅ جمعبندی آموزش ایجاد و مدیریت User در SQL Server
در این آموزش، به طور کامل با مفهوم User در SQL Server آشنا شدیم و تفاوت آن با Login را بررسی کردیم. دانستیم که:
Login در سطح سرور و برای ورود کاربران به SQL Server تعریف میشود.
User در سطح دیتابیس برای مدیریت دسترسی کاربران به جداول، نماها، رویهها و دیگر اشیای دیتابیس به کار میرود.
ایجاد و مدیریت User شامل مراحل ساخت Login، ایجاد User در دیتابیس، اختصاص Role مناسب و در صورت نیاز، تغییر یا حذف آن است.
با استفاده از مثالهای کاربردی، دیدیم که چگونه میتوان کاربران را فقط برای خواندن، نوشتن یا دسترسی کامل تعریف کرد. همچنین سؤالات متداول و تمرینهایی جهت درک بهتر و تمرین عملی دانشجو ارائه شد.
🔐 مدیریت کاربران و تعیین دقیق سطح دسترسی آنها، یکی از مهمترین اقدامات برای افزایش امنیت و بهرهوری در SQL Server است.
دوره های مرتبط

آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .