Veritabanı sorumlusu, veritabanında bir şemaya sahiptir ve mesaj bırakılamaz


28

Bir anaparayı veritabanından silmeye çalışıyorum, ancak bir şema sahibi olduğu için yapamam. Ancak kullanıcıyı düzenlemeye gittiğimde, şema işaretini kaldıran kutu mavi ve taşınamaz durumda. Anaparayı bu şemalardan nasıl kaldırabilirim?

Yanıtlar:


31

Bunu yapmak için T-SQL'i deneyin:

alter authorization
on schema::YourSchemaName
to dbo
go

drop user TheUserYouWantToDelete
go

Bir şema sahibi olan bir ana parayı bırakamazsınız, bu nedenle ALTER AUTHORZATIONsahip olunan şemayı değiştiririm (kullandım YourSchemaName, ancak açıkça veritabanınızdaki şema ile değiştirirsiniz) dbo(aynı şekilde mülkiyeti ihtiyacınız olan ana paraya sahip olarak değiştirebilirsiniz) ortam). Bu, daha önce şema sahibi olan kullanıcıyı bırakmanıza izin verir (örneğin TheUserYouWantToDelete, kullandığım amaçlar için , ama şimdi bırakmak istediğiniz sahibi olmayacak).


Tamam, bu işe yaradı. Ancak neden olarak biraz kafam karıştı. Şemayı neden başka bir şemaya yetkilendirmem gerekiyor? Belki de şemaları incelemeliyim ...
rsteckly

1
@ rsteckly Basitleştirilmiş, yetkilendirme = sahiplik. Şemanın sahibi olan kullanıcıyı silebilirseniz, şema geçerli olmaz çünkü sahibi artık mevcut değildir. Sipariş vermiş olan bir müşteriyi silebileceğinizi düşünün. Siparişler tablosundaki Müşteri Kimliği, artık gösterdiği bir Müşteri yoksa ne anlama gelir? Siparişi nereye göndermeliyim?
Aaron Bertrand

Üzgünüm, örneğim iyi açıklanmadı. Yetkilendirmeyi dboşemaya göre değiştirmiyoruz, yetkilendirmeyi dbomüdüre göre değiştiriyoruz . Bu herhangi bir veritabanı sorumlusu olabilirdi.
Thomas Stringer

30

T-SQL yolu çalışıyor. Http://zarez.net/?p=179 Teşekkürler SSMS yolunu buldum (UI).

Şema sahibini SQL Server Management Studio'dan değiştirmek için:

Expand your database -> Security -> Schemas

Nesne Gezgini Ayrıntıları'nda şemaların ve sahiplerin listesini görebilirsiniz:

görüntü tanımını buraya girin

Kullanıcının sahip olduğu şemaları bilmiyorsanız, Kullanıcının özelliklerini kontrol edin.

görüntü tanımını buraya girin

Kullanıcının sahip olduğu şemanın özelliklerini açın ve yeni bir sahibi bulmak için "Ara" düğmesini tıklayın. Yeni sahibi tanımıyorsanız, bir tane için "Gözat" yapabilirsiniz.

Properites -> Search -> Browse

ve şema sahibini dbo olarak değiştirebilirsiniz (ya da en uygun olanı).

görüntü tanımını buraya girin


1
T-SQL yolu çok daha iyi ve esnektir. GUI ile yapmak her zaman bir acıdır!
Kin Shah

Hepsi T-SQL yolu için de var, çünkü komut dosyalarında kullanılabiliyor.
woodvi

2
Not: F7 gelmiyorsa ayrıntıları göstermenin kısayolu
Simon_Weaver
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.