View Full Version : error 21002
babamjan
پنج شنبه 14 مهر 1384, 16:32 عصر
سلام
من وقتی از یک بانک اطلاعاتی کپی backup میگیرم و اونو توی یک سرور جدید restore میکنم و میخوام به یوزر اون دیتا بیس اجازه دسترسی بدم این پیغام ظاهر میشه
error 21002 :sql-dmo user 'xxx' already exist
که یوزر xxxهمون یوزری است که میخوام بهش اجازه دسترسی به دیتا بیس رو بهش بدم این مشکل برای دیتا بیسهای هست که restore میشن و اسم یوزر اونها در قبل از بک آپ گیری همون اسمی است که حالا من میخوام دوباره اونو بسازم و بهش اجازه دسترسی به اون دیتا بیس رو بدم البته بگم که من کلا دیتا بیس رو از اون سرور به یک سرور دیگه منتقل کردم
m-khorsandi
یک شنبه 17 مهر 1384, 07:56 صبح
درود
شما نمیتونید این User ایی که زمان Restore کردن ساخته شده رو حذف کنید؟
AminSobati
سه شنبه 19 مهر 1384, 23:32 عصر
دوست عزیزم،
هر Login فقط یک User در دیتابیس میتونه داشته باشه. به احتمال زیاد مالک دیتابیس شما، همون یوزری هستش که براش قصد دارید مجددا User بسازید. وقتی یک User مالک دیتابیس باشه، یعنی همه کاری اجازه داره انجام بده و نیازی نیست شما مجددا User براش بسازید
babamjan
پنج شنبه 21 مهر 1384, 15:42 عصر
درود
شما نمیتونید این User ایی که زمان Restore کردن ساخته شده رو حذف کنید؟
نه یعنی بلد نیستم حذفش کنم چجوری باید این یوزر رو که هنگام restore شدن ساخته میشه رو حذف کرد؟
ممنون
babamjan
پنج شنبه 21 مهر 1384, 15:45 عصر
دوست عزیزم،
هر Login فقط یک User در دیتابیس میتونه داشته باشه. به احتمال زیاد مالک دیتابیس شما، همون یوزری هستش که براش قصد دارید مجددا User بسازید. وقتی یک User مالک دیتابیس باشه، یعنی همه کاری اجازه داره انجام بده و نیازی نیست شما مجددا User براش بسازید
یعنی بدون ساختن یوزر برای دیتا بیس باید امکان کانکت شدن بهش با همون یوزر و پسورد قبل از بک اپ گیری وجود داشته باشه اینجوری که نشد یعنی من نتونستم بهش کانکت بشم
AminSobati
پنج شنبه 21 مهر 1384, 21:57 عصر
شما یک لاگین با هر اسمی که مایل هستید بسازید و این لاگین رو عضو Sysadmin کنید. تنها با همین کار میتونین از دیتابیس استفاده کنین.
babamjan
شنبه 23 مهر 1384, 07:54 صبح
شما یک لاگین با هر اسمی که مایل هستید بسازید و این لاگین رو عضو Sysadmin کنید. تنها با همین کار میتونین از دیتابیس استفاده کنین.
درسته راستشو بخواهید الان همین کارو کردم ولی مشکل اینه که من حدود 10 تا بانک متعلق به برنامه های مختلف رو روی سرور دارم و در این حالت مجبورم حدود 10 تا یوزر و پسورد رو sys admin کنم و این رو از نظر امنیتی خوب نمیبینم یکی از دوستام میگفت که بهتره برای حل این مشکل instance های مختلفی برای هر کدوم از دیتابیس ها روی سرور sql نصب کنم و هر کدوم از دیتا بیس ها رو توی یکی از این instance ها نصب کنم اینجوری از نظر امنیتی بهتره ایا این راه درسته؟
ممنون
AminSobati
یک شنبه 24 مهر 1384, 23:18 عصر
زمانی این کار توجیه داره که شما به Admin اطمینان ندارید و قصد دارید اطلاعات خودتون رو حتی از دست Admin ویندوز هم محافظت کنید.
ولی اگر امکانش وجود داره که برای کاربرها لاگین بسازین و در دیتابیس مربوط به خودشون User ایجاد کنین و این User رو عضو db_owner کنین، از این روش استفاده بشه بهتره. در این حالت هر کدوم فقط Admin دیتابیس خودشون هستند
babamjan
دوشنبه 25 مهر 1384, 11:47 صبح
sql اجازه این کارو نمیده به همون دلیلی که در پست اول گفتم ایا راهی نیست که بشه با اسکریپتی چیزی یوزرهای دیتا بیس رو پاک کرد؟
AminSobati
سه شنبه 26 مهر 1384, 05:00 صبح
بوسیله sp_changedbowner مالک دیتابیس رو عوض کنین و مجددا سعی در ساخت User کنید
babamjan
چهارشنبه 27 مهر 1384, 08:39 صبح
ممنون از راهنمایی این کاری که گفتید یک اسکریپته ؟ چجوری باید انجام بدم اگه میشه یک توضیح مختصر بدید
ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.