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ı. |
| ASIMETRİK ANAHTAR | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| Kullanılabilirlik Grubu | Ş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 bkz. Veritabanları için ALTER AUTHORIZATION. |
| ENDPOINT | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| TAM METIN KATALOĞU | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| TAM METİN STOP LİSTESİ | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri, Azure SQL Veritabanı. |
| İLETI TÜRÜ | Şunlar için geçerlidir: SQL Server 2008 (10.0.x) ve üzeri. |
| UZAKTAN HİZMET BAĞLANTISI | Ş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). |
| GAYRİMENKUL LİSTESİ ARA | Şunlar için geçerlidir: SQL Server 2012 (11.x) ve üzeri, Azure SQL Veritabanı. |
| SUNUCU ROLÜ | Ş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. |
| SİMETRİK ANAHTAR | Ş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 Şema Koleksiyonu | Ş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 sorumlusunun 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. Nesnenin, nesnenin şemasına sahip olan sorumluya ait olması gerektiğini belirtmek için *principal_name- olarak SCHEMA OWNER değerini belirtin.
Remarks
ALTER AUTHORIZATION, sahibi olan herhangi bir varlığın sahipliğini 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) sürümünden başlayarak, bir kullanıcı başka bir veritabanı kullanıcısı tarafından sahip olunan bir şemanın içerdiği BIR OBJECT veya TYPE'a sahip olabilir. 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 aktarırken geçerlidir. SCHEMA OWNER, varlığın sahipliğini bulunduğu şemanın sahibine aktarır. Yalnızca OBJECT, TYPE veya XML SCHEMA COLLECTION sınıfı varlıkları şema içerir.
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 ait bir TYPE'ın sahipliğini değiştiremezsiniz. |
| SÖZLEŞME, İleti TÜRÜ veya HİzMET | Sistem varlıklarının sahipliği değiştirilemez. |
| SİMETRİK ANAHTAR | Genel geçici anahtarların sahipliği değiştirilemez. |
| SERTIFIKA veya ASIMETRIK ANAHTAR | Bu varlıkların sahipliğini bir rol veya gruba aktaramazsınız. |
| ENDPOINT | Sorumlu bir oturum açma bilgisi olmalıdır. |
Veritabanları için ALTER AUTHORIZATION
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ı.
ALTER AUTHORIZATION deyimini yürüten kişinin gereksinimleri:Sysadmin sabit sunucu rolünün üyesi değilseniz, veritabanında en azından SAHIPLIK ALMA iznine sahip olmanız ve yeni sahip oturum açmada KIMLIĞE BÜRÜN iznine sahip olmanız gerekir.
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ının, ALTER AUTHORIZATION deyimi yürütülmeden önce veritabanı sahipliğini yeni kullanıcıyla değiştirmeden önce veritabanından kaldırılması gerekir. 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.
ALTER AUTHORIZATION deyimini yürüten kişinin gereksinimleri: Bu veritabanının sahibini değiştirmek için hedef veritabanına bağlanmanız gerekir.
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)