Veritabanı geri yüklendikten sonra veritabanında oturum açabilen kullanıcılar ve izinler hatalı olabilir

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

Belirtiler

Bir SQL Server kullanıcı veritabanı dökümü (etkin yedek sunucu gibi) farklı bir SQL Server için veya aynı SQL sunucusuna yeniden olu?turma veya master veritabanını eski bir sürümünü yeniden yükleme sonrasında geri yüklenirse, kullanıcı oturum açma ve veritabanı izinleri yanlış olabilir.

Bu sorun birkaç yolla kendisini açığa:
  • Bir 6.x sunucuya oturum açma sırasında kullanıcılar aşağıdaki hata iletisini alabilirsiniz:
    Msg 4002, Düzey 14, durum 1, sunucu Microsoft SQL Server, satır 0
    Oturum açma başarısız oldu
    DB Kitaplığı: Oturum açma yanlış.
  • 7.0 Bir sunucuya oturum açma sırasında kullanıcılar aşağıdaki hata iletisini alabilirsiniz:
    Ileti 18456, Düzey 14, durum 1,
    Login failed for user '%ls' ('%ls' kullanıcısı için oturum açma başarısız oldu.).
  • Veritabanındaki nesnelerin erişmeye çalışırken, kullanıcılar aşağıdaki hata iletisini alabilirsiniz:
    <a1>Ileti</a1> 229, Düzey 14, durum 1
    %s izin engellendi nesnesi %. * s, veritabanı %. * s, sahibine %.*s
  • Bir oturum oluşturma ve geri yüklenen veritabanı erişim izni veya kullanıcı veritabanına eklemek girişimi sırasında aşağıdaki hata alınması:
    Microsoft SQL-DMO (ODBC SQLState: 42000) hata 15023: kullanıcı veya rolün, '% s' geçerli veritabanında zaten bulunmaktadır.
  • Kullanıcılar için daha önce görünmelerini olmayan nesnelerde izinleriniz olabilir.

Neden

Kullanıcı oturum açma bilgileri, ana veritabanındaki <a1>syslogins</a1> tablosunda depolanır. Sunucuları değiştirme veya bu bilgileri yeniden oluşturuluyor veya master veritabanını eski bir sürümünü geri değiştirme, bilgileri kullanıcı veritabanı dökümü oluşturulduğu alanından farklı olabilir. Oturumlar, kullanıcılar için yoksa, sunucuya oturum açma girişimi sırasında "Oturum açma başarısız oldu" belirten bir hata alırsınız. Kullanıcı oturumları var, ancak SUID (6.x için) değerleri veya SID yöneticisinde (7.0) değerleri.syslogins ve sysusers tablosunda <a0>kullanıcı</a0> veritabanında farklı, kullanıcıların kullanıcı veritabanında beklenenden farklı izinlere sahip.

Not Microsoft SQL Server 2005 kullanıyorsanız, syslogins tablo ve sysusers tablosunda uyumluluk görünümler uygulanır. Bu görünümler sys.syslogins ve sys.sysusers ' dir. Uyumluluk görünümler hakkında daha fazla bilgi için SQL Server 2005 Books Online'da "Uyumluluk görünümleri (Transact-SQL)" konusuna bakın.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, aşağıdakilerden birini yapın:
  • Geçerli komut oturumlar, kullanıcılar ve izinler eklemek için bırakma ve bunları, komut dosyalarını yeniden oluşturun. Oturum açma sunucuları arasında aktarmak için komut dosyaları kullanarak örnekleri için aşağıdaki Microsoft Knowledge Base makalesine bakın:
    246133NASıL YAPıLıR: SQL Server örnekleri arasında oturum ve parolaları aktarma
    240872Bir veritabanı SQL Server'lar arasında taşındı, izin sorunlarını çözümleme hakkında
  • Sp_change_users_login saklı yordamı, syslogins, <a2>sysusers</a2> ve <a4>sysalternates tablolar arasındaki ilişkileri reassociate için kullanabilirsiniz. Ancak, yordamı bağlantıları en iyi tahminler yapan ve bir kullanıcı, istenenden daha fazla erişim ayrıcalığı verebilir. Rapor seçeneğiyle yordamını çalıştırmadan önce değiştirilmesi olan kullanıcıların listesini oluşturur. Daha sonra etkilenen kullanıcılar için uygun izinlere sahip olduğunuzdan emin olmak için denetlemelisiniz. Ayrıca, sp_change_users_login yordamı oturum açmalar ve kullanıcıların veritabanında farklı sırada oluşturulan türetilen izin sorunları yedeklemenin geri yüklenir düzeltmez olduğunu unutmayın.
  • Bir ana veritabanı dökümü sunucuya kullanıcı veritabanı yüklemeden önce kullanıcı veritabanı dökümü süre geri yükleyin. Bunu <a0>kullanıcı</a0> veritabanındaki tüm kullanıcı bilgilerini doğru syslogins Tablo Yöneticisini eşleşmesini sağlar.

    UYARı: asıl veritabanını Sunucu bazındaki bilgileri içerir ve sunucu üzerindeki tüm veritabanlarını etkiler. Master veritabanını geri yükleyerek, ek kullanıcı kimliği ve/veya kayıp veya yanlış izinlere sahip bir veritabanı karşılaşabilirsiniz. Asıl yedeğin süresi nedeniyle ortaya çıkan değişiklikler kaybolacaktır. Bu yöntemi yalnızca, asıl veritabanının yedek sürümü sunucuda, söz konusu kullanıcı veritabanı ve diğer tüm veritabanları için doğru bilgileri içerdiğini eminseniz kullanın.
  • Kullanım transfer İçin (6.x) Yöneticisi ya da DTS (7.0 için) oturumların kopyalamak için. Parolaları, bu yöntemi kullanarak transfered olmayacak unutmayın.
  • Birincil destek sağlayıcınıza başvurun.

Özellikler

Makale numarası: 168001 - Last Review: 28 Mart 2006 Salı - Gözden geçirme: 5.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Anahtar Kelimeler: 
kbmt kbprb kbusage KB168001 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:168001

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