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
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
koncový bod SQL Analytics ve službě Microsoft Fabric
Warehouse v Microsoft Fabric
databáze SQL v Microsoft Fabric
Změní vlastnictví zabezpečitelného objektu.
Syntaxe
-- 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
}
Poznámka:
Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Argumenty
< > class_type Je zabezpečitelná třída entity, pro kterou se mění vlastník. OBJECT je výchozí hodnota.
Třída | Výrobek |
---|---|
OBJEKT | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database, Azure Synapse Analytics, Platform Platform System (PDW). |
SHROMÁŽDĚNÍ | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
Asymetrický klíč | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
SKUPINA DOSTUPNOSTI | Platí pro: SQL Server 2012 a novější |
CERTIFIKÁT | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
SMLOUVA | Platí pro: SQL Server 2008 (10.0.x) a novější |
DATABÁZE | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. Další informace naleznete v tématu ALTER AUTHORIZATION pro databáze. |
koncový bod | Platí pro: SQL Server 2008 (10.0.x) a novější |
FULLTEXTOVÝ KATALOG | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
SEZNAM ZASTAVENÝCH SLOV PRO ÚPLNÝ TEXT | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
TYP ZPRÁVY | Platí pro: SQL Server 2008 (10.0.x) a novější |
PROPOJENÍ VZDÁLENÉ SLUŽBY | 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. |
TRASA | Platí pro: SQL Server 2008 (10.0.x) a novější |
SCHÉMA | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database, Azure Synapse Analytics, Platform Platform System (PDW). |
SEZNAM NEMOVITOSTÍ K VYHLEDÁVÁNÍ | Platí pro: SQL Server 2012 (11.x) a novější, Azure SQL Database. |
SERVEROVÁ ROLE | Platí pro: SQL Server 2008 (10.0.x) a novější |
SLUŽBA | Platí pro: SQL Server 2008 (10.0.x) a novější |
SYMETRICKÝ KLÍČ | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
TYP | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
KOLEKCE SCHÉMAT XML | Platí pro: SQL Server 2008 (10.0.x) a novější, Azure SQL Database. |
entity_name Je název entity.
principal_name | VLASTNÍK SCHÉMATU Název objektu zabezpečení, který bude entitu vlastnit. 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í). Zadejte vlastníka schématu jako *principal_name- k označení, že objekt by měl vlastnit objekt, který vlastní schéma objektu.
Poznámky
ALTER AUTHORIZATION lze použít ke změně vlastnictví jakékoli entity, 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.
Důležité
Počínaje SQL Serverem 2005 (9.x) může uživatel vlastnit objekt nebo typ, který je obsažen schématem 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.
Možnost VLASTNÍK SCHÉMATU je platná pouze v případech, kdy převádíte vlastnictví entity obsažené ve schématu. VLASTNÍK schématu převede vlastnictví entity na vlastníka schématu, ve kterém se nachází. Schéma obsahuje pouze entity třídy OBJECT, TYPE nebo XML SCHEMA COLLECTION.
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í.
Poznámka:
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í:
Důležité
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.
Třída | Podmínka |
---|---|
OBJEKT | 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. |
SCHÉMA | 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. |
TYP | Nelze změnit vlastnictví typu, který patří do systému nebo information_schema. |
SMLOUVA, TYP ZPRÁVY NEBO SLUŽBA | Nelze změnit vlastnictví systémových entit. |
SYMETRICKÝ KLÍČ | Nelze změnit vlastnictví globálních dočasných klíčů. |
CERTIFIKÁT NEBO ASYMETRICKÉ KLÍČE | Vlastnictví těchto entit nelze přenést do role nebo skupiny. |
koncový bod | 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á provádí příkaz ALTER AUTHORIZATION: Pokud nejste členem pevné role serveru správce systému , musíte mít alespoň oprávnění PŘEVZÍT VLASTNICTVÍ databáze a musí mít oprávnění IMPERSONATE pro nové přihlášení 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). Před provedením příkazu ALTER AUTHORIZATION, který změní vlastnictví databáze na nového uživatele, musí být uživatel Microsoft Entra nejprve odebrán z databáze. 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á provádí příkaz ALTER AUTHORIZATION: Pokud chcete změnit vlastníka této databáze, musíte se připojit k cílové databázi.
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:
Vykonavatel | Cíl | Výsledek |
---|---|---|
Přihlášení k ověřování SQL Serveru | Přihlášení k ověřování SQL Serveru | Úspěch |
Přihlášení k ověřování SQL Serveru | Uživatel Microsoft Entra | Neúspěch |
Uživatel Microsoft Entra | Přihlášení k ověřování SQL Serveru | Úspěch |
Uživatel Microsoft Entra | Uživatel Microsoft Entra | Úspěch |
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
mydbogroup
noví č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.
Povolení
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.
Příklady
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 MichikoOsada
databá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.com
Microsoft 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)