Kullanıcı, Grup veya Rol ‘test_user’ Veritabanında Zaten Mevcut Hatasının Çözümü

Share

SQL Server’de bir veritabanını yedekten geri dönüp ( restore )  ardından oturum açmayı denediğinizde  büyük olasılıkla aşağıdaki hata ile karşılaşırsınız.

User, group, or role ‘user_cihan’ already exists in the current database (Microsoft SQL Server, Error: 15023).

Kullanıcı, grup veya rol ‘user_cihan’ mevcut veritabanında zaten mevcut (Microsoft SQL Server, Hata: 15023).

Yedekten dönülen ( restore ) veritabanınızda ‘user_cihan’ adlı bir kullanıcınız varsa ve sunucuda bu kullanıcıyı oluşturduysanız ( geçerli veritabanında zaten var… hatasını alırsınız)

Tek bir veritabanında bu problemi çözmek için aşağıdaki komut çalıştırılabilir

sp_change_users_login 'AUTO_FIX', 'user_cihan'

Eğer birden fazla veritabanınızı yedekten döndüyseniz aşağıdaki genel script i çalıştırmanız durumunda diğer tüm veritabanlarında da problemi otomatik olarak düzeltecektir.

declare @name varchar(150)
declare @query nvarchar (500)
DECLARE cur CURSOR FOR
select name from master..syslogins
Open cur
FETCH NEXT FROM cur into @name
WHILE @@FETCH_STATUS = 0
BEGIN
set @query='USE [?]
IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb''
BEGIN
exec sp_change_users_login ''Auto_Fix'', '''
+ @name +'''
END'

EXEC master..sp_MSForeachdb @query
FETCH NEXT FROM cur into @name
END
CLOSE cur
DEALLOCATE cur

(Visited 43 times, 1 visits today)