alter YETKİLENDİRME (Transact-SQL)
Bir güvenliği sağlanabilirsahipliğini değiştirir.
Sözdizimi
ALTER AUTHORIZATION
ON [ <class_type>:: ] entity_name
TO { SCHEMA OWNER | principal_name }
<class_type> ::=
{
OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE
| CONTRACT | TYPE | DATABASE | ENDPOINT | FULLTEXT CATALOG
| FULLTEXT STOPLIST | MESSAGE TYPE | REMOTE SERVICE BINDING
| ROLE | ROUTE | SCHEMA | SERVICE | SYMMETRIC KEY
| XML SCHEMA COLLECTION
}
Bağımsız değişkenler
<class_type>
güvenliği sağlanabilir sahibi değiştiriliyor varlık sınıfıdır.Varsayılan nesnedir.entity_name
varlıkaddır.principal_name
varlıkolacağım patron adıdır.
Açıklamalar
alter YETKİLENDİRME, sahibi olduğu herhangi bir varlık sahipliğini değiştirmek için kullanılabilir.Tüm veritabanı -düzey asıl veritabanı bulunan varlıklar sahipliğini aktarılabilir.Server -düzey varlıklar sahipliğini yalnızca server -düzey sorumluları için transfer edilebilir.
Önemli |
---|
İle başlayan SQL Server 2005, nesne veya türü sahibi şema tarafından bulunan bir kullanıcı sahibi olabileceğinibaşka bir veritabanı kullanıcı.Bu davranış önceki sürümlerinden farklıdır SQL Server.Daha fazla bilgi için, bkz. Kullanıcı şeması ayrımı, objectproperty (Transact-SQL) ve typeproperty (Transact-SQL). |
Aşağıdaki şema içerdiği varlıkları türü "nesne" sahipliğini aktarılabilir: tablolar, görünümler, İşlevler, yordamlar, sıralar ve eşanlamlı.
Varlıkları sahipliğini transfer edilemez: bağlantılı sunucuları, istatistikler, kısıtlamaları, kuralları, varsayılanlar, tetikleyiciler, Service Broker sıralar, kimlik bilgileri, bölüm işlevleri, bölümleme şemaları, veritabanı ana anahtarlar, hizmet ana anahtarve olay bildirimleri.
Aşağıdaki güvenliği sağlanabilir sınıfların üyesi sahipliğini transfer edilemez: Sunucu, oturum açma, kullanıcı, uygulama rolüve sütun.
Şema sahibi seçeneği, yalnızca bir şema içerdiği varlıksahipliğini aktarırken geçerlidir.Şema sahibi bulunduğu şema sahibini varlık sahipliğini transfer eder.Yalnızca sınıf nesne, tür veya xml şema KOLEKSİYONU şema içerdiği varlıklardır.
hedefvarlık bir veritabanı değil ve varlık bir yeni kullanıcıya aktarıldığı, hedef üzerindeki tüm izinler iptal edilir.
Dikkat |
---|
De SQL Server 2005, şemaların önceki sürümlerindeki davranışı arasında değişen davranış SQL Server.Şemalar veritabanı kullanıcılarını eşdeğer olduğunu varsayar kod doğru sonuçlardöndürmeyebilir.Eski katalog görünümleride dahil olmak üzere sysobjects, hangi hiçbirinde aşağıdaki DDL deyimleri bugüne kadar kullanılmıştı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION.İçinde bu ifadeler birini bugüne kadar kullanılmıştı veritabanında yeni katalog görünümlerikullanmanız gerekir.katalog görünümleri yeni aldıı sorumluları ve içinde sunulan şemaları ayrımını SQL Server 2005.katalog görünümlerihakkında daha fazla bilgi için bkz: Katalog Görünümleri (Transact-SQL). |
Ayrıca, aşağıdakilere dikkat edin:
Önemli |
---|
Bir nesnenin sahibini bulmak için yalnızca güvenilir sys.objects Katalog görünümü sorgulamak için yoludur.Bir tür sahibini bulmak için yalnızca güvenilir şekilde typeproperty işlevkullanmaktır. |
Özel durumlar ve koşullar
Aşağıdaki tablo , özel durumlarda, özel durumlar ve yetkilendirmedeğiştirme için geçerli olan koşulları listeler.
Sınıf |
Koşul |
---|---|
VERİTABANI |
sistem veritabanlarısahibini değiştiremezsinizmaster, model, tempdb, kaynak veritabanı veya dağıtım veritabanıolarak kullanılan veritabanı. Patron, bir oturum olmalıdır.Asıl adı olmadan bir karşılık gelen Windows oturumu açma olup SQL Server login, patron control server izni ve Sahipliği Al izni veritabanı. üzerinde olmalıdırPatron ise bir SQL Server login, patron, bir sertifika veya asimetrik anahtareşlenen olamaz.Bağımlı diğer adlar için yeni veritabanı sahibi eşleştirilir.dbo SID güncelleştirilir, hem geçerli veritabanında ve de sys.databases. |
NESNE |
Tetikleyiciler, kısıtlamaları, kuralları, varsayılanlar, istatistikleri, sistem nesneleri, sıraları, dizin oluşturulmuş görünümler veya dizinlenmiş görünümler tabloları sahipliğini değiştiremezsiniz. |
ŞEMA |
Sahiplik transfer edildiğinde, açık sahipleri olmayan şema içerdiği nesnelerin izinlerini iptal edilir.Sahibini değiştiremezsiniz sys, dbo, veya information_schema. |
TÜRÜ |
Ait olduğu türü sahipliğini değiştiremezsiniz sys veya information_schema. |
Sözleşme, ileti türü veya hizmet |
Sistem varlıkları sahipliğini değiştiremezsiniz. |
SİMETRİK ANAHTAR |
Geçici genel anahtarları sahipliğini değiştiremezsiniz. |
Sertifika veya ASİMETRİK anahtar |
Bu varlıkların sahipliği bir rol veya gruba aktaramaz. |
BİTİŞ NOKTASI |
Patron, bir oturum olmalıdır. |
İzinler
varlıkSahipliği Al izni gerektirir.Yeni sahibi bu deyimyürütme kullanıcı değilse de, 1 gerektirir) bir kullanıcı veya oturum açma; ise yeni sahibi özelliklerini Al izni veya 2) bir rol, rol ya da alter iznine rolüne; yeni sahibi ise, veya 3) yeni sahibi olup bir uygulama rolü, alter iznine uygulama rolü.
Örnekler
A.Bir tablosahipliği aktarma
Aşağıdaki örnek tablosahipliğini aktarırSprockets kullanıcı MichikoOsada. tablo şema içinde bulunan Parts.
ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO
Sorguyu aşağıdaki gibi görünebilir:
ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO
B.Şema sahibi bir görünüm sahipliği aktarma
Aşağıdaki örnek sahipliği görünümü aktarır ProductionView06 it. içeren şema sahibi içinGörünümü şema içinde bulunan Production.
ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO
C.Bir kullanıcı bir şema sahipliğini aktarma
Aşağıdaki örnek şema sahipliğini aktarır SeattleProduction11 kullanıcı SandraAlayo.
ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO
D.Bir SQL Server oturumu için bir bitiş noktası sahipliği aktarma
Aşağıdaki örnek, bitiş noktası sahipliği aktarır CantabSalesServer1 için JaePak.Bitiş noktası bir server -düzey güvenliği sağlanabilirolduğundan, son nokta yalnızca bir sunucudüzey için asıl aktarılabilir.
ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO
Ayrıca bkz.