Bu makalede User, group, or role ‘Login_Name’already exists in the current database. Hatasını ele almış olacağız. Sql server login user ilişkisi makalesinde karşılaşmış olduğum bu hatayı makale haline getirmek istedim. Yukarıda belirtilen makaleden de okunabilir. Ben sadece böyle bir durumla karşılaşırsak ne gibi durumların yapılması gerektiğinden bahsetmiş olacağım.
Veritabanımızı bir ortamdan başka bir ortama restore edeceğimiz zaman veritabanı altında bulunan user’larında geldiğini görmüşsünüzdür. Siz restore edilen yeni ortamda veritabanı altında bulunan user ismiyle aynı oluşturulan login’i ilgili veritabanın da yetki vermeye çalıştığınızda aşağıdaki hata mesajıyla karşılaşmış olursunuz.

Bu hata mesajı KULLANICI isminde olan login’in veritabanı altında bulunan user kısmında mevcut olduğunu söylüyor. Çünkü bir login veritabanına yetki verildiğinde aynı isimde bir user oluşturur. Yukarıdaki ekran resminde de aynı isimde olduğu için hata vermiş oldu. Aşağıdaki resimde de veritabanı altında ilgili kullanıcının olduğunu görebiliriz.

Bu gibi durumalar da nasıl senaryoların oluşturulması gerekmektedir.
Birinci Yöntem: Bu sorunu gidermek için ilgili veritabanı altında aynı isimdeki user’ı silebiliriz. Ama silerken şunu da göze almak gerekiyor restore edilen veritabanı altındaki user’da onlarca yetki olabilir. Silersek ilgili user’ı yetkilerin tekrardan verilmesi gerekir. Genelde bu yöntem tercih edilmez.
İkinci Yöntem: Veritabanı altındaki user’ın oluşturulmuş olan instance login’nine bağlı olduğunu belirtmek gerekiyor.
USE AdventureWorks2014
ALTER USER KULLANICI WITH LOGIN = KULLANICI
User ve login isimleri de farklı olabilir bu komut ile ikisinin sid’lerini aynı yapıyoruz. Gerçek sistemlerde kullanıcı herhangi bir restore sırasında düşerse bu komutlar çalışır. Bu komut ile user’ı silmemize gerek kalmıyor çalıştırıp işlemlerimizi otomatikmen yapıyoruz.
Üçüncü Yöntem: Aşağıdaki komut veritabanı altında bulunan user’ı referans alarak ilk başta aynı isimde bir login var mı diye bakıyor varsa eşleştiriyor yoksa sid’sine bakıyor oda aynı değilse aynı isimde yeni bir login oluşturuyor.
USE AdventureWorks2014
EXEC sp_change_users_login 'Auto_Fix', 'KULLANICI'
Veritabanının restore edilen ortamdan sp_help_revlogin() yapısıyla login create script’i alınıp restore edilen sunucuda çalıştırılırsa sorun çözülmüş olurdu.
Ama bazen veritabanı altında user ile login arasında bağlantı kopabilir. Yukarıda belirtmiş olduğumuz yöntemlerden 2. Ve 3. Yöntemin çalıştırılması gerekmektedir.
Bu makalede User, group, or role ‘Login_Name’already exists in the current database. Hatasının çözümünü ele almış olduk. Başka bir makalede görüşmek dileğiyle.
“İlminle övünme, Şeytan’a bak!” Araf-12
https://filedn.eu/lXvDNJGJo3S0aUrNKUTnNkb/marketing-250/research/je-tall-sf-marketing-(79).html
Dillards is a superb place to examine out if you’re
looking for one thing larger end.