Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

The server principal “sqlLoginName” is not able to access the database “myDatabaseName” under the current security context.

Şirkette geçenlerde DRC(Disastery Recovery Center)  serverlarımızda bir test yapmak için bir veritabanı uygulaması publish ettik ve loglarında bu hata ile karşılaştık. Biraz araştırunca sql server’ın restore olması sırasında syslogin SID si ile sysuser SID sinin uyuşmuyor olabileceğini gördük.
Aşağıdaki sorgularla SID leri karşılaştırdık.

USE <myDatabaseName>
SELECT sid FROM sys.sysusers WHERE name = ‘userName’
SELECT sid FROM sys.syslogins WHERE name = ‘userName’

ve aşağıdaki stored prosedür ile de problemi çözdük.
EXEC sp_change_users_login @Action=’update_one’, @UserNamePattern=’userName’,@LoginName=’userName’


You can see that the SID does not match the system views: sys.sysusers and sys.syslogins

SELECT sid FROM sys.sysusers WHERE name = ‘sqlLoginName’
SELECT sid FROM sys.syslogins WHERE name = ‘sqlLoginName’

http://blogs.technet.com/b/mdegre/archive/2010/08/28/the-server-principal-quot-sqlloginname-quot-is-not-able-to-access-the-database-quot-mydatabasename-quot-under-the-current-security-context.aspx

 

Reklamlar

Aralık 5, 2012 - Posted by | MSSql | , , , ,

Henüz yorum yapılmamış.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s