Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Güvenlik altına alınabilir bir öğenin sahipliğini değiştirir.
Transact-SQL söz dizimi kuralları
Note
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Syntax
-- Syntax for SQL Server
ALTER AUTHORIZATION
ON [ <class_type>:: ] entity_name
TO { principal_name | SCHEMA OWNER }
[;]
<class_type> ::=
{
OBJECT | ASSEMBLY | ASYMMETRIC KEY | AVAILABILITY GROUP | CERTIFICATE
| CONTRACT | TYPE | DATABASE | ENDPOINT | FULLTEXT CATALOG
| FULLTEXT STOPLIST | MESSAGE TYPE | REMOTE SERVICE BINDING
| ROLE | ROUTE | SCHEMA | SEARCH PROPERTY LIST | SERVER ROLE
| SERVICE | SYMMETRIC KEY | XML SCHEMA COLLECTION
}
-- Syntax for SQL Database
ALTER AUTHORIZATION
ON [ <class_type>:: ] entity_name
TO { principal_name | SCHEMA OWNER }
[;]
<class_type> ::=
{
OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE
| TYPE | DATABASE | FULLTEXT CATALOG
| FULLTEXT STOPLIST
| ROLE | SCHEMA | SEARCH PROPERTY LIST
| SYMMETRIC KEY | XML SCHEMA COLLECTION
}
-- Syntax for Azure Synapse Analytics and Microsoft Fabric
ALTER AUTHORIZATION ON
[ <class_type> :: ] <entity_name>
TO { principal_name | SCHEMA OWNER }
[;]
<class_type> ::= {
SCHEMA
| OBJECT
}
<entity_name> ::=
{
schema_name
| [ schema_name. ] object_name
}
-- Syntax for Parallel Data Warehouse
ALTER AUTHORIZATION ON
[ <class_type> :: ] <entity_name>
TO { principal_name | SCHEMA OWNER }
[;]
<class_type> ::= {
DATABASE
| SCHEMA
| OBJECT
}
<entity_name> ::=
{
database_name
| schema_name
| [ schema_name. ] object_name
}
Note
Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
Arguments
< > class_type Sahibinin değiştirildiği varlığın güvenli hale getirilebilir sınıfıdır. OBJECT varsayılan değerdir.
| Class | Product |
|---|---|
| OBJECT | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı, Azure Synapse Analytics, Analytics Platform Sistemi (PDW). |
| ASSEMBLY | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| ASYMMETRIC KEY | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| AVAILABILITY GROUP | Şunlar için geçerlidir: SQL Server 2012 ve üzeri. |
| CERTIFICATE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| CONTRACT | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| DATABASE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. Daha fazla bilgi için veritabanlarına bakınızALTER AUTHORIZATION. |
| ENDPOINT | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| FULLTEXT CATALOG | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| FULLTEXT STOPLIST | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| MESSAGE TYPE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| REMOTE SERVICE BINDING | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| ROLE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| ROUTE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| SCHEMA | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı, Azure Synapse Analytics, Analytics Platform Sistemi (PDW). |
| SEARCH PROPERTY LIST | Şunlar için geçerlidir: SQL Server 2012 (11.x) ve üzeri, Azure SQL Veritabanı. |
| SERVER ROLE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| SERVICE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| SYMMETRIC KEY | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| TYPE | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| XML SCHEMA COLLECTION | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
entity_name Varlığın adıdır.
principal_name | SCHEMA OWNER Varlığa sahip olacak güvenlik yöneticisinin adı. Veritabanı nesneleri bir veritabanı sorumlusuna ait olmalıdır; bir veritabanı kullanıcısı veya rolü. Sunucu nesneleri (veritabanları gibi) bir sunucu sorumlusuna (oturum açma) sahip olmalıdır. OWNER'ıSCHEMA *principal_name- olarak belirtin; böylece nesnenin şemasına sahip olan ana sahip olması gerektiğini belirtir.
Remarks
ALTER AUTHORIZATION Sahibi olan herhangi bir kuruluşun mülkiyetini değiştirmek için kullanılabilir. Veritabanı içeren varlıkların sahipliği herhangi bir veritabanı düzeyi sorumlusuna aktarılabilir. Sunucu düzeyinde varlıkların sahipliği yalnızca sunucu düzeyindeki sorumlulara aktarılabilir.
Important
SQL Server 2005 (9.x) ile itibaren, bir kullanıcı bir NESNEYE sahip olabilir veya TYPE başka bir veritabanı kullanıcısına ait bir şema tarafından içerilmiştir. Bu, SQL Server'ın önceki sürümlerindeki bir davranış değişikliğidir. Daha fazla bilgi için bkz . OBJECTPROPERTY (Transact-SQL) ve TYPEPROPERTY (Transact-SQL).
"object" türünde aşağıdaki şema içeren varlıkların sahipliği aktarılabilir: tablolar, görünümler, işlevler, yordamlar, kuyruklar ve eş anlamlılar.
Aşağıdaki varlıkların sahipliği aktarılamaz: bağlı sunucular, istatistikler, kısıtlamalar, kurallar, varsayılanlar, tetikleyiciler, Hizmet Aracısı kuyrukları, kimlik bilgileri, bölüm işlevleri, bölüm şemaları, veritabanı ana anahtarları, hizmet ana anahtarı ve olay bildirimleri.
Şu güvenli hale getirilebilir sınıfların üyelerinin sahipliği aktarılamaz: sunucu, oturum açma, kullanıcı, uygulama rolü ve sütun.
SCHEMA OWNER seçeneği yalnızca şema içeren bir varlığın sahipliğini devrederken geçerlidir. SCHEMA SAHIP, varlığın mülkiyetini, bulunduğu şemanın sahibine devreder. Yalnızca OBJECT sınıfındaki varlıklar, TYPE, veya XML SCHEMA COLLECTION şema içermelidir.
Hedef varlık bir veritabanı değilse ve varlık yeni bir sahipe aktarılıyorsa, hedefteki tüm izinler bırakılır.
Note
Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
Ayrıca aşağıdakilere dikkat edin:
Important
Bir nesnenin sahibini bulmanın tek güvenilir yolu sys.objects katalog görünümünü sorgulamaktır. Türün sahibini bulmanın tek güvenilir yolu, TYPEPROPERTY işlevini kullanmaktır.
Özel Durumlar ve Koşullar
Aşağıdaki tabloda, yetkilendirmeyi değiştirmek için geçerli olan özel durumlar, özel durumlar ve koşullar listeleniyor.
| Class | Condition |
|---|---|
| OBJECT | Tetikleyicilerin, kısıtlamaların, kuralların, varsayılanların, istatistiklerin, sistem nesnelerinin, kuyrukların, dizinli görünümlerin veya dizinli görünümlere sahip tabloların sahipliğini değiştiremezsiniz. |
| SCHEMA | Sahiplik aktarıldığında, açık sahiplere sahip olmayan şema içeren nesneler üzerindeki izinler bırakılır. sys, dbo veya information_schema sahibi değiştirilemez. |
| TYPE | Sys veya information_schema'ye ait olan bir TYPE cihazın sahipliğini değiştiremez. |
| CONTRACT, MESSAGE TYPE veya SERVICE | Sistem varlıklarının sahipliği değiştirilemez. |
| SYMMETRIC KEY | Genel geçici anahtarların sahipliği değiştirilemez. |
| CERTIFICATE veya ASYMMETRIC KEY | Bu varlıkların sahipliğini bir rol veya gruba aktaramazsınız. |
| ENDPOINT | Sorumlu bir oturum açma bilgisi olmalıdır. |
ALTER AUTHORIZATION veritabanları için
SQL Server için
Yeni sahip için gereksinimler: Yeni sahip sorumlusu aşağıdakilerden biri olmalıdır:
- SQL Server kimlik doğrulaması oturum açma bilgileri.
- Bir Windows kullanıcısını (grup değil) temsil eden bir Windows kimlik doğrulaması oturum açma bilgisi.
- Bir Windows grubunu temsil eden bir Windows kimlik doğrulaması oturum açma bilgileri aracılığıyla kimlik doğrulamasından geçen bir Windows kullanıcısı.
Ifadeyi yürüten ALTER AUTHORIZATION kişi için gereksinimler:Eğer sistem yöneticisi sabit sunucu rolünün üyesi değilseniz, veritabanında en az TAKE OWNERSHIP iznine sahip olmanız ve yeni sahip girişinde IMPERSONATE iznine sahip olmalısınız.
Azure SQL Veritabanı için
Yeni sahip için gereksinimler: Yeni sahip sorumlusu aşağıdakilerden biri olmalıdır:
- SQL Server kimlik doğrulaması oturum açma bilgileri.
- Microsoft Entra Kimliği'nde bir federasyon kullanıcısı (grup değil) var.
- Yönetilen kullanıcı (grup değil) veya Microsoft Entra Id'de bulunan bir uygulama.
Yeni sahip bir Microsoft Entra kullanıcısıysa, yeni sahibin yeni veritabanı sahibi (dbo) olacağı veritabanında kullanıcı olarak bulunamaz. Microsoft Entra kullanıcısı, veritabanı sahipliğini yeni kullanıcıya değiştirme bildirimi yürütmeden ALTER AUTHORIZATION önce veritabanından çıkarılmalıdır. MICROSOFT Entra kullanıcılarını SQL Veritabanı ile yapılandırma hakkında daha fazla bilgi için bkz. Microsoft Entra kimlik doğrulamasını yapılandırma.
Açıklamayı yürüten ALTER AUTHORIZATION kişi için gereksinimler: Veritabanının sahibini değiştirmek için hedef veritabanına bağlanmalısınız.
Aşağıdaki hesap türleri bir veritabanının sahibini değiştirebilir.
- Azure'da mantıksal sunucu oluşturulduğunda sağlanan SQL yöneticisi olan hizmet düzeyi asıl oturum açma bilgileri.
- Mantıksal sunucu için Microsoft Entra yöneticisi..
- Veritabanının geçerli sahibi.
Aşağıdaki tabloda gereksinimleri özetlemektedir:
| Executor | Target | Result |
|---|---|---|
| SQL Server Kimlik Doğrulaması oturum açma | SQL Server Kimlik Doğrulaması oturum açma | Success |
| SQL Server Kimlik Doğrulaması oturum açma | Microsoft Entra kullanıcısı | Fail |
| Microsoft Entra kullanıcısı | SQL Server Kimlik Doğrulaması oturum açma | Success |
| Microsoft Entra kullanıcısı | Microsoft Entra kullanıcısı | Success |
Veritabanının Microsoft Entra sahibini doğrulamak için kullanıcı veritabanında (bu örnekte testdb) aşağıdaki Transact-SQL komutunu yürütür.
SELECT CAST(owner_sid as uniqueidentifier) AS Owner_SID
FROM sys.databases
WHERE name = 'testdb';
Çıkış, veritabanı sahibi olarak atanan Microsoft Entra kullanıcısının veya hizmet sorumlusunun nesne kimliğine karşılık gelen bir GUID (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXgibi) olacaktır. Microsoft Entra Id'de kullanıcının nesne kimliğini denetleyerek bunu doğrulayabilirsiniz. Sql Server kimlik doğrulaması oturum açma kullanıcısı veritabanı sahibi olduğunda, veritabanı sahibini doğrulamak için ana veritabanında aşağıdaki deyimi yürütür:
SELECT d.name, d.owner_sid, sl.name
FROM sys.databases AS d
JOIN sys.sql_logins AS sl
ON d.owner_sid = sl.sid;
En iyi uygulama
Microsoft Entra kullanıcılarını veritabanının tek tek sahipleri olarak kullanmak yerine , db_owner sabit veritabanı rolünün üyesi olarak bir Microsoft Entra grubu kullanın. Aşağıdaki adımlarda, devre dışı bırakılmış oturum açma bilgilerinin veritabanı sahibi olarak yapılandırılması ve Microsoft Entra grubunun (mydbogroup) db_owner rolüne üye yapılması gösterilmektedir.
SQL Server'da Microsoft Entra yöneticisi olarak oturum açın ve veritabanının sahibini devre dışı bırakılmış bir SQL Server kimlik doğrulaması oturumuyla değiştirin. Örneğin, kullanıcı veritabanından şu komutu yürütür:
ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;Veritabanına sahip olması gereken bir Microsoft Entra grubu oluşturun ve bunu kullanıcı veritabanına kullanıcı olarak ekleyin. Örneğin:
CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;Kullanıcı veritabanında, Microsoft Entra grubunu temsil eden kullanıcıyı db_owner sabit veritabanı rolüne ekleyin. Örneğin:
ALTER ROLE db_owner ADD MEMBER mydbogroup;
mydbogroup Artık üyeler veritabanını db_owner rolünün üyeleri olarak merkezi olarak yönetebilir.
- Bu grubun üyeleri Microsoft Entra grubundan kaldırıldığında, bu veritabanı için dbo izinlerini otomatik olarak kaybederler.
- Benzer şekilde, Microsoft Entra grubuna
mydbogroupyeni üyeler eklenirse, bu veritabanı için otomatik olarak dbo erişimi kazanırlar.
Belirli bir kullanıcının geçerli dbo iznine sahip olup olmadığını denetlemek için kullanıcının aşağıdaki deyimi yürütmesini sağlayın:
SELECT IS_MEMBER ('db_owner');
1 dönüş değeri, kullanıcının rolün üyesi olduğunu gösterir.
Permissions
Varlık üzerinde SAHIPLIK ALMA izni gerektirir. Yeni sahip bu deyimi yürüten kullanıcı değilse, 1) Bir kullanıcı veya oturum açma ise yeni sahip üzerinde KIMLIĞE BÜRÜNme izni de gerektirir; veya 2) yeni sahip bir rolse, rol üyeliğiyse veya rol üzerinde ALTER izni varsa; veya 3) yeni sahip bir uygulama rolüyse, uygulama rolü üzerinde ALTER izni.
Examples
A. Tablonun sahipliğini aktarma
Aşağıdaki örnek, tablosunun Sprockets sahipliğini kullanıcıya MichikoOsadaaktarır. Tablo şema Partsiçinde bulunur.
ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO
Sorgu aşağıdaki gibi de görünebilir:
ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO
Nesne şeması deyiminin bir parçası olarak dahil değilse, Veritabanı Altyapısı nesneyi kullanıcılar varsayılan şemasında arar. Örneğin:
ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;
B. Bir görünümün sahipliğini şema sahibine aktarma
Aşağıdaki örnek, görünümü içeren şemanın sahibine sahipliği ProductionView06 aktarır. Görünüm şema Productioniçinde bulunur.
ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO
C. Şemanın sahipliğini kullanıcıya aktarma
Aşağıdaki örnek şemanın SeattleProduction11 sahipliğini kullanıcıya SandraAlayoaktarır.
ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO
D. Uç noktanın sahipliğini SQL Server oturum açma bilgilerine aktarma
Aşağıdaki örnek uç noktanın CantabSalesServer1 sahipliğini öğesine JaePakaktarır. Uç nokta sunucu düzeyinde güvenli hale getirilebilir olduğundan, uç nokta yalnızca sunucu düzeyinde bir sorumluya aktarılabilir.
için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri.
ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO
E. Tablonun sahibini değiştirme
Aşağıdaki örneklerin her biri veritabanındaki Sprockets tablonun Parts sahibini veritabanı kullanıcısı MichikoOsadaolarak değiştirir.
ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;
ALTER AUTHORIZATION ON dbo.Sprockets TO MichikoOsada;
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;
ALTER AUTHORIZATION ON OBJECT::dbo.Sprockets TO MichikoOsada;
F. Veritabanının sahibini değiştirme
Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Analiz Platformu Sistemi (PDW), SQL Veritabanı.
Aşağıdaki örnek, veritabanının sahibini Parts oturum açma MichikoOsadaolarak değiştirir.
ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;
G. Veritabanının sahibini Microsoft Entra kullanıcısı olarak değiştirme
Aşağıdaki örnekte, adlı cqclinic.onmicrosoft.comözel bir Microsoft Entra etki alanına sahip bir kuruluştaki SQL Server için Microsoft Entra yöneticisi, aşağıdaki komutu kullanarak veritabanının targetDB geçerli sahipliğini değiştirebilir ve mevcut bir Microsoft Entra kullanıcısını richel@cqclinic.onmicorsoft.com yeni veritabanı sahibi yapabilir:
ALTER AUTHORIZATION ON database::targetDB TO [rachel@cqclinic.onmicrosoft.com];
Ayrıca Bkz.
OBJECTPROPERTY (Transact-SQL)TYPEPROPERTY (Transact-SQL)EVENTDATA (Transact-SQL)