SORUN: Çevrimiçi Kitaplar'daki "Artık Kullanıcı Sorunlarını Giderme" Konusu Tamamlanmamış

Makale çevirileri Makale çevirileri
Makale numarası: 274188 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Bir veritabanı yedeklemesini başka bir sunucuya geri yüklediğinizde, artık kullanıcılarla ilgili bir sorun yaşayabilirsiniz. SQL Server Çevrimiçi Kitaplar'daki 'Artık Kullanıcı Sorunları Giderme' konusu bu sorunu çözmek için doğru adımların anahatlarını göstermez.

Bu makale artık kullanıcılar sorununu nasıl gidereceğinizi açıklar.

Durum

Microsoft bunun, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır.

Daha fazla bilgi

Oturum ve kullanıcı terimleri çoğunlukla birbirinin yerine geçebilir şekilde kullanıldıkları halde, çok farklıdır. Oturum açma, kullanıcı kimlik doğrulaması için kullanılır ve veritabanı erişimi ve izin doğrulamaları için bir veritabanı kullanıcı hesabı kullanılır. Oturumlar kullanıcılarla güvenlik belirleyici (SID) ile ilişkilendirilir. SQL Server sunucusuna erişim için bir oturum gereklidir. Belirli bir oturumun geçerli olduğunun onaylanması işlemine "kimlik doğrulama" adı verilir. Bu oturum bir SQL Server veritabanı kullanıcısı ile ilişkilendirilmelidir. Kullanıcı hesabını veritabanında gerçekleştirilen etkinlikleri denetlemek için kullanırsınız. Veritabanında belirli bir oturum için hiçbir kullanıcı hesabı yoksa, oturumu kullanan kullanıcı SQL Server sunucusuna bağlanabiliyor olsa bile veritabanına erişemez. Bu durumun tek istisnası, veritabanının "konuk" kullanıcı hesabını içerdiği durumlardır. İlişkili kullanıcı hesabı olmayan bir oturum konuk kullanıcıyla eşleştirilir. Bunun tersine, bir veritabanı kullanıcısı varsa ancak ilişkili oturum yoksa, kullanıcı SQL Server sunucusunda oturum açamaz.

Bir veritabanı başka bir sunucuya geri yüklendiyse, bir kullanıcı ve izin kümesi içerir ancak karşılık gelen oturum ya da oturumlar olmayabilir veya oturumlar aynı kullanıcılarla ilişkilendirilmemiş olabilir. Bu durum "artık kullanıcılar" olması olarak bilinir.

Artık Kullanıcı Sorunlarını Giderme

Bir veritabanı yedeklemesini başka bir sunucuya geri yüklediğinizde, orphaned users ile ilgili bir sorun yaşayabilirsiniz. Aşağıdaki senaryo sorunu örneklerle açıklar ve nasıl çözümleneceğini gösterir.
  1. Ana veritabanına bir oturum ekleyin ve varsayılan veritabanını Northwind olarak belirleyin:
    Use master go sp_addlogin 'test', 'parola', 'Northwind'
    						
  2. Oluşturduğunuz kullanıcıya erişim izni verin:
    Use Northwind go sp_grantdbaccess 'test'
    						
  3. Veritabanını yedekleyin.
    BACKUP DATABASE Northwind
    TO DISK = 'C:\MSSQL\BACKUP\Northwind.bak'
    						
  4. Veritabanını başka bir SQL Server sunucusuna geri yükleyin.
    RESTORE DATABASE Northwind
    FROM DISK = 'C:\MSSQL\BACKUP\Northwind.bak'
    						
    Geri yüklenen veritabanı, oturumu olmayan ve bu sebeple artık olan "test" adında bir kullanıcı içerir.
  5. Şimdi, artık kullanıcıları algılamak için şu kodu çalıştırın:
    Use Northwind go sp_change_users_login 'report'
    						
    Çıkış, Northwind veritabanının sysusers sistem tablosundaki ve ana veritabanındaki sysxlogins sistem tablosundaki girişleri arasında uyuşmazlık olan tüm oturumları listeler.

Artık Kullanıcıları Çözümleme Adımları

  1. Aşağıdaki komutu önceki adımdaki artık kullanıcı için çalıştırın:
    Use Northwind
    go
    sp_change_users_login 'update_one', 'test', 'test'
    						
    Bu, sunucu oturumu "test"i Northwind veritabanı kullanıcısı "test" ile yeniden bağlar. sp_change_users_login saklı yordamı aynı zamanda "auto_fix" parametresi ile tüm artık kullanıcıların güncelleştirilmesini gerçekleştirebilir ancak bu önerilmez çünkü SQL Server oturumları ve kullanıcıları adlarıyla eşleştirmeye çalışır. Çoğu durum için bu çalışır, ancak, bir kullanıcıyla yanlış oturum ilişkilendirilmişse, kullanıcı yanlış izinlere sahip olabilir.
  2. Önceki adımda kodu çalıştırmanızdan sonra, kullanıcı veritabanına erişebilir. Kullanıcı bundan sonra parolayı sp_password saklı yordamı ile değiştirebilir:
    Use master 
    go
    sp_password NULL, 'ok', 'test'
    						
    Bu saklı yordam Microsoft Windows NT güvenlik hesapları için kullanılamaz. SQL Server sunucusuna Windows NT ağ hesapları üzerinden bağlanan kullanıcılar için kimlik doğrulaması Windows NT tarafından yapılır, parolaları sadece Windows NT'de değiştirilebilir.

    Sadece sysadmin rolü üyeleri diğer kullanıcıların oturumu parolasını değiştirebilir.

Referanslar

Bir veritabanı sunucular arasında taşındığında izin sorunlarını çözümleme hakkında ek bilgi için, Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
240872 NASIL YAPILIR: Veritabanını SQL Server Çalıştıran Sunucular Arasında Taşıdığınızda İzin Sorunlarını Gidermek

Özellikler

Makale numarası: 274188 - Last Review: 10 Mart 2004 Çarşamba - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Anahtar Kelimeler: 
kbcodesnippet kbpending kbprb KB274188

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com