Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Změní vlastnictví zabezpečitelného objektu.
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
Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Arguments
< > class_type Je zabezpečitelná třída entity, pro kterou se mění vlastník. OBJECT je výchozí hodnota.
| Class | Product |
|---|---|
| OBJECT | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database, Azure Synapse Analytics, Platform Platform System (PDW). |
| ASSEMBLY | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| ASYMMETRIC KEY | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| AVAILABILITY GROUP | Platí pro: SQL Server 2012 a novější |
| CERTIFICATE | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| CONTRACT | Platí pro: SQL Server 2008 (10.0.x) a novější |
| DATABASE | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. Pro více informací viz ALTER AUTHORIZATION databáze. |
| ENDPOINT | Platí pro: SQL Server 2008 (10.0.x) a novější |
| FULLTEXT CATALOG | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| FULLTEXT STOPLIST | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| MESSAGE TYPE | Platí pro: SQL Server 2008 (10.0.x) a novější |
| REMOTE SERVICE BINDING | Platí pro: SQL Server 2008 (10.0.x) a novější |
| ROLE | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| ROUTE | Platí pro: SQL Server 2008 (10.0.x) a novější |
| SCHEMA | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database, Azure Synapse Analytics, Platform Platform System (PDW). |
| SEARCH PROPERTY LIST | Platí pro: SQL Server 2012 (11.x) a novější, Azure SQL Database. |
| SERVER ROLE | Platí pro: SQL Server 2008 (10.0.x) a novější |
| SERVICE | Platí pro: SQL Server 2008 (10.0.x) a novější |
| SYMMETRIC KEY | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| TYPE | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
| XML SCHEMA COLLECTION | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
entity_name Je název entity.
principal_name | SCHEMA VLASTNÍK Jméno principa cenného papíru, který bude vlastníkem subjektu. Databázové objekty musí vlastnit instanční objekt databáze; databázový uživatel nebo role. Objekty serveru (například databáze) musí vlastnit instanční objekt (přihlášení). Specifikujte SCHEMA OWNER jako *principal_name-, aby bylo jasné, že objekt by měl vlastnit principal, který vlastní schéma objektu.
Remarks
ALTER AUTHORIZATION lze použít ke změně vlastnictví jakéhokoliv subjektu, který má vlastníka. Vlastnictví entit obsažených v databázi lze přenést do jakéhokoli objektu zabezpečení na úrovni databáze. Vlastnictví entit na úrovni serveru lze přenést pouze na objekty zabezpečení na úrovni serveru.
Important
Od SQL Server 2005 (9.x) může uživatel vlastnit OBJEKT nebo TYPE ten, který je obsažen ve schématu vlastněném jiným uživatelem databáze. Jedná se o změnu chování ze starších verzí SQL Serveru. Další informace naleznete v tématu OBJECTPROPERTY (Transact-SQL) a TYPEPROPERTY (Transact-SQL).
Vlastnictví následujících entit obsažených ve schématu typu "object" lze přenést: tabulky, zobrazení, funkce, procedury, fronty a synonyma.
Vlastnictví následujících entit nelze přenést: propojené servery, statistiky, omezení, pravidla, výchozí hodnoty, triggery, fronty služby Service Broker, přihlašovací údaje, funkce oddílů, schémata oddílů, hlavní klíče databáze, hlavní klíč služby a oznámení událostí.
Vlastnictví členů následujících zabezpečitelných tříd nelze přenést: server, přihlášení, uživatel, role aplikace a sloupec.
Volba SCHEMA VLASTNÍK je platná pouze tehdy, když převádíte vlastnictví entity obsahující schémata. SCHEMA VLASTNÍK převede vlastnictví subjektu na vlastníka schématu, ve kterém se nachází. Pouze entity třídy OBJECT, TYPE, nebo XML SCHEMA COLLECTION jsou obsaženy ve schématu.
Pokud cílová entita není databáze a entita se převádí na nového vlastníka, všechna oprávnění k cíli se zahodí.
Note
Schémata nejsou ekvivalentní uživatelům databáze. Pomocí zobrazení katalogu systému identifikujte všechny rozdíly mezi uživateli databáze a schématy.
Všimněte si také těchto věcí:
Important
Jediným spolehlivým způsobem, jak najít vlastníka objektu, je dotazování zobrazení katalogu sys.objects . Jediným spolehlivým způsobem, jak najít vlastníka typu, je použít funkci TYPEPROPERTY.
Zvláštní případy a podmínky
Následující tabulka uvádí zvláštní případy, výjimky a podmínky, které platí pro změnu autorizace.
| Class | Condition |
|---|---|
| OBJECT | Nelze změnit vlastnictví triggerů, omezení, pravidel, výchozích hodnot, statistik, systémových objektů, front, indexovaných zobrazení nebo tabulek s indexovanými zobrazeními. |
| SCHEMA | Při převodu vlastnictví se oprávnění k objektům obsaženým ve schématu, které nemají explicitní vlastníky, zahodí. Nelze změnit vlastníka systému, dbo nebo information_schema. |
| TYPE | Nelze změnit vlastnictví toho TYPE , co patří sys nebo information_schema. |
| CONTRACT, MESSAGE TYPE nebo SERVICE | Nelze změnit vlastnictví systémových entit. |
| SYMMETRIC KEY | Nelze změnit vlastnictví globálních dočasných klíčů. |
| CERTIFICATE nebo ASYMMETRIC KEY | Vlastnictví těchto entit nelze přenést do role nebo skupiny. |
| ENDPOINT | Objekt zabezpečení musí být přihlášení. |
ALTER AUTHORIZATION pro databáze
Pro SQL Server
Požadavky pro nového vlastníka: Nový objekt zabezpečení vlastníka musí být jeden z následujících:
- Přihlášení k ověřování SQL Serveru.
- Přihlášení k ověřování systému Windows představujícího uživatele Systému Windows (nikoli skupinu).
- Uživatel Systému Windows, který se ověřuje prostřednictvím přihlášení ověřování systému Windows představující skupinu Windows.
Požadavky na osobu, která příkaz vykonává: ALTER AUTHORIZATION Pokud nejste členem role pevného správce systému, musíte mít alespoň oprávnění PŘEVZÍT VLASTNICTVÍ databáze a musíte mít povolení IMPERSONATE při přihlášení nového vlastníka.
Pro Azure SQL Database
Požadavky pro nového vlastníka: Nový objekt zabezpečení vlastníka musí být jeden z následujících:
- Přihlášení k ověřování SQL Serveru.
- Federovaný uživatel (ne skupina) v Microsoft Entra ID.
- Spravovaný uživatel (nikoli skupina) nebo aplikace, které jsou přítomné v MICROSOFT Entra ID.
Pokud je novým vlastníkem uživatel Microsoft Entra, nemůže existovat jako uživatel v databázi, kde se nový vlastník stane novým vlastníkem databáze (dbo). Uživatel Microsoft Entra musí být nejprve odstraněn z databáze před vykonáním příkazu ALTER AUTHORIZATION měnícího vlastnictví databáze na nového uživatele. Další informace o konfiguraci uživatelů Microsoft Entra pomocí SLUŽBY SQL Database naleznete v tématu Konfigurace ověřování Microsoft Entra.
Požadavky na osobu, která příkaz vykonává: ALTER AUTHORIZATION Musíte se připojit k cílové databázi, abyste změnili vlastníka této databáze.
Následující typy účtů můžou změnit vlastníka databáze.
- Přihlášení instančního objektu na úrovni služby, což je správce SQL zřízený při vytvoření logického serveru v Azure .
- Správce Microsoft Entra pro logický server..
- Aktuální vlastník databáze.
Následující tabulka shrnuje požadavky:
| Executor | Target | Result |
|---|---|---|
| Přihlášení k ověřování SQL Serveru | Přihlášení k ověřování SQL Serveru | Success |
| Přihlášení k ověřování SQL Serveru | Uživatel Microsoft Entra | Fail |
| Uživatel Microsoft Entra | Přihlášení k ověřování SQL Serveru | Success |
| Uživatel Microsoft Entra | Uživatel Microsoft Entra | Success |
Pokud chcete ověřit vlastníka databáze Microsoft Entra, spusťte následující příkaz Transact-SQL v uživatelské databázi (v tomto příkladu testdb).
SELECT CAST(owner_sid as uniqueidentifier) AS Owner_SID
FROM sys.databases
WHERE name = 'testdb';
Výstupem bude identifikátor GUID (například XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX), který odpovídá ID objektu uživatele Microsoft Entra nebo instančního objektu přiřazeného jako vlastník databáze. Můžete to ověřit tak, že zkontrolujete ID objektu uživatele v Microsoft Entra ID. Pokud je uživatel pro přihlášení k ověřování SQL Serveru vlastníkem databáze, spusťte v hlavní databázi následující příkaz, který ověří vlastníka databáze:
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;
Nejlepší praxe
Místo použití uživatelů Microsoft Entra jako jednotlivých vlastníků databáze použijte skupinu Microsoft Entra jako člena db_owner pevné databázové role. Následující postup ukazuje, jak nakonfigurovat zakázané přihlášení jako vlastníka databáze a nastavit skupinu Microsoft Entra (mydbogroup) jako člena db_owner role.
Přihlaste se k SQL Serveru jako správce Microsoft Entra a změňte vlastníka databáze na zakázané přihlášení k ověřování SQL Serveru. Například z uživatelské databáze spusťte:
ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;Vytvořte skupinu Microsoft Entra, která by měla vlastnit databázi, a přidejte ji jako uživatele do uživatelské databáze. Například:
CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;Do uživatelské databáze přidejte uživatele představující skupinu Microsoft Entra do db_owner pevné databázové role. Například:
ALTER ROLE db_owner ADD MEMBER mydbogroup;
mydbogroup Teď můžou členové databázi centrálně spravovat jako členy db_owner role.
- Když jsou členové této skupiny odebráni ze skupiny Microsoft Entra, automaticky ztratí oprávnění dbo pro tuto databázi.
- Podobně pokud jsou do skupiny Microsoft Entra přidáni
mydbogroupnoví členové, automaticky získají přístup dbo pro tuto databázi.
Pokud chcete zkontrolovat, jestli má konkrétní uživatel platné oprávnění dbo, spusťte následující příkaz:
SELECT IS_MEMBER ('db_owner');
Návratová hodnota 1 označuje, že uživatel je členem role.
Permissions
Vyžaduje oprávnění PŘEVZÍT VLASTNICTVÍ pro entitu. Pokud nový vlastník není uživatelem, který tento příkaz spouští, vyžaduje také oprávnění 1) ZOSOBNIT pro nového vlastníka, pokud se jedná o uživatele nebo přihlášení; nebo 2) pokud je novým vlastníkem role, členství v roli nebo oprávnění ALTER k této roli; nebo 3) pokud je novým vlastníkem role aplikace, alter oprávnění k roli aplikace.
Examples
A. Převod vlastnictví tabulky
Následující příklad přenese vlastnictví tabulky Sprockets na uživatele MichikoOsada. Tabulka se nachází uvnitř schématu Parts.
ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO
Dotaz může vypadat také takto:
ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO
Pokud schéma objektů není součástí příkazu, databázový stroj vyhledá objekt ve výchozím schématu uživatelů. Například:
ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;
B. Převod vlastnictví zobrazení na vlastníka schématu
Následující příklad přenese vlastnictví zobrazení ProductionView06 na vlastníka schématu, který ho obsahuje. Zobrazení se nachází uvnitř schématu Production.
ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO
C. Převod vlastnictví schématu na uživatele
Následující příklad přenese vlastnictví schématu SeattleProduction11 na uživatele SandraAlayo.
ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO
D. Převod vlastnictví koncového bodu na přihlášení k SQL Serveru
Následující příklad přenese vlastnictví koncového bodu CantabSalesServer1 do JaePak. Vzhledem k tomu, že koncový bod je zabezpečitelný na úrovni serveru, je možné koncový bod přenést pouze do objektu zabezpečení na úrovni serveru.
platí pro: SQL Server 2008 (10.0.x) a novější.
ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO
E. Změna vlastníka tabulky
Každý z následujících příkladů změní vlastníka Sprockets tabulky v Parts databázi na uživatele MichikoOsadadatabáze .
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. Změna vlastníka databáze
Platí pro: SQL Server 2008 (10.0.x) a novější, systém PDW (Analytics Platform System), SQL Database.
Následující příklad změní vlastníka Parts databáze na přihlášení MichikoOsada.
ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;
G. Změna vlastníka databáze na uživatele Microsoft Entra
V následujícím příkladu může správce Microsoft Entra pro SQL Server v organizaci s vlastní doménou cqclinic.onmicrosoft.comMicrosoft Entra změnit aktuální vlastnictví databáze targetDB a vytvořit existujícího uživatele richel@cqclinic.onmicorsoft.com Microsoft Entra vlastníkem nové databáze pomocí následujícího příkazu:
ALTER AUTHORIZATION ON database::targetDB TO [rachel@cqclinic.onmicrosoft.com];
Viz také
OBJECTPROPERTY (Transact-SQL)TYPEPROPERTY (Transact-SQL)EVENTDATA (Transact-SQL)