ورود

View Full Version : سوال: خطای 15023 در sql



abbasjafarnezhad
چهارشنبه 27 مرداد 1389, 15:39 عصر
با سلام بعد از publish کردن سایت و قرار دادن روی سرویس iis در ویندوز xp با پیغام خطای زیر مواجه شدم
Cannot open database "pp" requested by the login. The login failed.
Login failed for user 'JAFARNEZHAD\ASPNET'


و با ایجاد این user در sql مشکل حل نشد و نتوانستم به این یوزر دسترسی owner را بدهم و خطای زیر را در sql می دهد


Create failed for User 'JAFARNEZHAD\ASPNET'. (Microsoft.SqlServer.Express.Smo)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.3042.00&EvtSrc=Microsoft.SqlServer.Management.Smo.Exceptio nTemplates.FailedOperationExceptionText&EvtID=Create+User&LinkId=20476


ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.Express.ConnectionInfo)



User, group, or role 'JAFARNEZHAD\ASPNET' already exists in the current database. (Microsoft SQL Server, Error: 15023)

m_omrani
چهارشنبه 27 مرداد 1389, 15:53 عصر
به احتمال بسيار زياد علت اين است که User ديتابيس شما يتيم شده است (Orphaned). در اين حالت User هنوز در Database شما وجود دارد ولي به دليل تغيير ديتابيس سرور، نگاشت آن به User اصلي موجود در ديتابيس سرور قطع شده است. دقت کنيد که دو نوع User داريم:

1. کاربري که در ديتابيس يا پايگاه داده خود داريد.
2. کاربري که در ديتابيس سرور تعريف مي شود.

لذا وقتي ديتابيس خود را Publish مي کنيد اگرچه در ديتابيس سرور مقصد کاربري مثلاً به نام myuser و اگرچه در ديتابيس شما هم همين User وجود دارد، ولي نگاشت آن به myuser ديتابيس سرور کامپيوتر خودتان بوده نه myuser ديتابيس سرور مقصد.

براي کشف اين که مشکل شما دقيقاً همين است دستور زير را بر روي ديتابيس خود در سايت مقصد اجرا کنيد:


EXEC sp_change_users_login 'Report'

اگر در گزارشي که اين دستور تعداد، تعداد کاربران يتيم شده بيش از صفر باشد براي حل مشکل و تصحيح نگاشت User ديتابيس خود به User ديتابيس سرور مقصد، دستور زير را اجرا کنيد:


EXEC sp_change_users_login 'Auto_Fix', 'user'

و به جاي user، نام کاربري User ديتابيس خود را وارد کنيد.

جهت کسب اطلاعات بيشتر به اين لينک مراجعه کنيد:

http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm