Veritabanı özellikleri iletişim kutusundaki Dosyalar Sayfasından veritabanının sahipliğini değiştirme hatası


10

Bir veritabanını geri yükledim ve db_owner olarak yeni bir kullanıcı (oturum açtığım kullanıcı) oluşturdum. Şimdi veritabanı diyagramında bir hata var görmek istediğimde

Bu veritabanının geçerli bir sahibi olmadığı için Veritabanı Şeması destek nesneleri yüklenemiyor. Devam etmek için, veritabanı sahibini geçerli bir girişe ayarlamak üzere önce Veritabanı Özellikleri iletişim kutusunun dosyalar sayfasını veya Yetkilendirmeyi Değiştir ifadesini kullanın, ardından veritabanı destek nesnelerini ekleyin

Şimdi Veritabanı Özellikleri Dosyaları sayfasından sahipliğini değiştirmeye çalıştığımda hata alıyorum

Set Sahibi 'ABC' Veritabanı için başarısız oldu. (Microsoft.SqlServer.SMO) Ek Bilgi: SMO'da bir istisna oluştu Önerilen yeni veritabanı sahibi James-PC \ James, bu veritabanında James kullanıcısı olarak eşlenmiştir. Parametre adı: James-PC \ James "

Başka bir sistemden veritabanı yedeklemesini geri yükledikten sonra bu bilgisayarda veritabanı diyagramlarını görebilmem için lütfen sorunu gidermeme yardımcı olun.

Yanıtlar:


8

Veritabanı sahibi, SID tarafından tanımlandığı şekliyle veritabanının sahibi olan sys.server_principals girişidir. Geri yüklemeden sonra, veritabanını geri yüklemek için kullanılan oturum açma bilgisinin, veritabanının önceki sahibi olan oturum açma işlemi olması kolay olabilir. (Bu, sunucular arasında taşındığında veritabanı daha da olasıdır.)

Yani, sorun yaşadığınız üç ayar olabilir

  1. Owner_sid veritabanı, veritabanının db_owner sid değerine eşit değildir. ABC veritabanı için aşağıdakileri karşılaştırabilirsiniz:

    SELECT owner_sid FROM sys.databases burada name = 'ABC';

    ABC dosyasını ABC.sys.database_principals adresinden SEÇİN WHERE name = 'dbo';

  2. Daha sonra, önerilen veritabanı owner_sid'inizin sys.database_principals içinde bir kullanıcı olarak var olduğunu belirten bir mesaj alıyorsunuz. Bunu, önerilen sahibin eşlenmesiyle ilgili hata mesajından biliyoruz.

Yani adımlarınız:

 USE ABC;
 DROP USER James;
 ALTER AUTHORIZATION ON DATABASE::ABC TO [James-PC\James];

Dbo yaptığınız için gerekli olmayan kullanıcıyı düşürdünüz. Bu yoldan çıktıktan sonra, girişiniz veritabanının sahibi olabilir.

DÜZENLEME: SSMS'yi James kullanıcısını ABC veritabanından silmek için de kullanabilirsiniz. Ardından, veritabanı sahibini ayarlamak için Veritabanı özellikleri Dosyası sekmesine dönebilirsiniz. (Üzgünüm, senaryoları düşünme eğilimindeyim.)


1
Bu ilginç, Management Studio'da bir dbo yapılan giriş YOUR_DB / Güvenlik / Kullanıcılar altında görünmüyor
joedotnot

-3
  1. sağ tıklama veritabanı
  2. özellikleri
  3. dosya seç
  4. sahibini düzelt / ayarla (senin pc \ 'ne veya "..." tıklayarak göz at ve seç)

bu benim için çalıştı SQL Server Management Studio v17.1


2
Bence bu onlar için işe yaramadı.
dezso
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.