Sunday, August 24, 2008

Orphaned Users

-در مورد مطالب وب‌لاگء سعی می‌کنم هم مطالب مقدماتی و هم مباححث پیش‌رفته‌تر را این‌جا مطرح کنم.

-لینک پست قبل به لیست توابع رشته‌ای SQL Server 2005 بود. در مورد توابع سیستمی جلسه آیندهء ۸ شهریورء مباحث خلاصه‌ای را مطرح می‌کنم و لینک مربوط به این نوع توابع را در وب‌لاگ خواهم گذاشت.

-این پست در مورد Orphaned User ها یا User های رهاشده است.

-یادآوری: برای متصل شدن به Instance ۲ راه وجود داشت: Windows Authentication و SQL Authentication. ما ابتدا Login ی بر روی Instance ایجاد می‌کردیم که از آن برای اتصال به دیتابیس به یکی از این دو روش استفاده می‌کردیم. اولین قدم در پروسه اتصال به Instanceء Authentication است تا مشخص شود آیا Login مورد نظر می‌تواند به دیتابیس کانکت شود یا خیر.

نکته: برای دیدن لیست Login ها و User ها می‌توانید از View های sys.syslogins و sys.server_principals استفاده کنید(در جلسه قبل توضیح داده شد).

پس از این‌که Authentication انجام شدء سرویسء چک می‌کند که آیا در دیتابیس‌هایی که به Instanceء Attach شده‌اند User ی به این Loginء Map شده است یا خیر. اگر Userی در دیتابیسی به Login مورد نظر ما Map شده بودء بر اساس دسترسی‌هایی که برای User تعریف شده استء دسترسی Client ی که با این Login به Instance متصل شده است Set می شود.

-حال Orphaned User چیست؟ User رها شدهء User ی است که Login برای آن تعریف نشده یا به صورت اشتباه تعریف شده است(نمونه: وقتی شما Loginی را حذف می‌کنیدء User هایی که به آن Map شده‌اندء به عنوان Orphaned User به حساب می‌آیند. یکی از موارد دیگری که ممکن است به چنین موضوعی بر بخوریدء منتقل کردن دیتابیس از یک سرور به سرور دیگر است-اتفاقی که دیروز برای من افتاد و انگیزه‌ی نوشتن این مطلب شد).

چطور می‌توان Orphaned User ها را در دیتابیس پیدا کرد؟ از اسکریپت زیر استفاده کنید:


sp_change_users_login @Action=’Report’



دقت کنید که این اسکریپت در سطح دیتابیس است نه Instance.

توصیه می‌کنم هربار پس از انتقال دیتابیس بین دو Instance مختلف این اسکریپت را اجرا کنید و یا Orphaned User ها را دوباره به Login ی Map کنید یا آن‌ها را حذف کنید.

sp_change_users_login یک Stored Procedure سیستمی است. در مورد Stored Procedure ها در جلسات آینده صحبت خواهیم کرد.

-توضیحات تکمیلی در مورد sp_change_users_login

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home