Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
Megváltoztatja egy védhető objektum tulajdonjogát.
Transact-SQL szintaxis konvenciók
Note
A Microsoft Entra ID-t korábban Azure Active Directorynak (Azure AD) nevezték.
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
Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.
Arguments
< > class_type Annak az entitásnak a biztonságos osztálya, amelyhez a tulajdonost módosítják. Az OBJEKTUM az alapértelmezett.
| Class | Product |
|---|---|
| OBJECT | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW). |
| ASSEMBLY | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| ASYMMETRIC KEY | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| AVAILABILITY GROUP | A következőkre vonatkozik: SQL Server 2012 és újabb verziók. |
| CERTIFICATE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| CONTRACT | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| DATABASE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. További információért lásd:ALTER AUTHORIZATION adatbázisok. |
| ENDPOINT | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| FULLTEXT CATALOG | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| FULLTEXT STOPLIST | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| MESSAGE TYPE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| REMOTE SERVICE BINDING | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| ROLE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| ROUTE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| SCHEMA | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW). |
| SEARCH PROPERTY LIST | A következőkre vonatkozik: SQL Server 2012 (11.x) és újabb, Azure SQL Database. |
| SERVER ROLE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| SERVICE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb verziók. |
| SYMMETRIC KEY | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| TYPE | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
| XML SCHEMA COLLECTION | A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Azure SQL Database. |
entity_name Az entitás neve.
principal_name | SCHEMA TULAJDONOS: A biztonsági megbízó neve, aki az entitás tulajdonosa. Az adatbázis-objektumoknak egy egyszerű adatbázis tulajdonában kell lenniük; adatbázis-felhasználó vagy -szerepkör. A kiszolgálóobjektumoknak (például adatbázisoknak) egy kiszolgálónévnek (bejelentkezésnek) kell lenniük. A OWNER ( SCHEMA OWNER ) (*principal_name- jelölje, hogy az objektumot az a fő kellene birtokolnia, aki az objektum sémáját birtokolja.
Remarks
ALTER AUTHORIZATION használható bármely olyan szervezet tulajdonjogának megváltoztatására, amelynek tulajdonosa van. Az adatbázis-alapú entitások tulajdonjoga bármely adatbázisszintű taghoz átadható. A kiszolgálószintű entitások tulajdonjoga csak kiszolgálószintű tagoknak ruházható át.
Important
Az SQL Server 2005 (9.x) verziótól kezdve a felhasználó birtokolhat egy OBJEKTUMOT, vagy TYPE amelyet egy másik adatbázis-felhasználó sémája tartalmaz. Ez az SQL Server korábbi verzióinak viselkedésváltozása. További információ: OBJECTPROPERTY (Transact-SQL) és TYPEPROPERTY (Transact-SQL).
Az "objektum" típusú sémafüggvények tulajdonjoga átadható: táblák, nézetek, függvények, eljárások, üzenetsorok és szinonimák.
A következő entitások tulajdonjoga nem ruházható át: csatolt kiszolgálók, statisztikák, korlátozások, szabályok, alapértelmezett értékek, eseményindítók, Service Broker-üzenetsorok, hitelesítő adatok, partíciófüggvények, partíciós sémák, adatbázis-főkulcsok, szolgáltatás főkulcsa és eseményértesítések.
A következő biztonságos osztályok tagjainak tulajdonjoga nem ruházható át: kiszolgáló, bejelentkezés, felhasználó, alkalmazásszerepkör és oszlop.
A SCHEMA TULAJDONOS opció csak akkor érvényes, ha egy sémában található entitás tulajdonjogát átruházod. SCHEMA A TULAJDONOS átruházza az entitás tulajdonjogát annak a sémának tulajdonosára, amelyben az található. Csak az OBJEKTUM, TYPEvagy XML SCHEMA COLLECTION osztályú entitások séma-tartalmazottak.
Ha a cél entitás nem adatbázis, és az entitás át lesz adva egy új tulajdonoshoz, a célhoz tartozó összes engedély elveszik.
Note
A sémák nem egyenértékűek az adatbázis felhasználóival. A rendszerkatalógus nézeteivel azonosíthatja az adatbázis-felhasználók és a sémák közötti különbségeket.
Vegye figyelembe a következőket is:
Important
Az objektumok tulajdonosának megkeresésének egyetlen megbízható módja a sys.objects katalógusnézet lekérdezése. Egy típus tulajdonosának megkeresésének egyetlen megbízható módja a TYPEPROPERTY függvény használata.
Különleges esetek és feltételek
Az alábbi táblázat az engedélyezés módosítására vonatkozó különleges eseteket, kivételeket és feltételeket sorolja fel.
| Class | Condition |
|---|---|
| OBJECT | Az eseményindítók, megkötések, szabályok, alapértelmezett értékek, statisztikák, rendszerobjektumok, üzenetsorok, indexelt nézetek vagy indexelt nézetekkel rendelkező táblák tulajdonjoga nem módosítható. |
| SCHEMA | A tulajdonjog átadásakor a rendszer elveti a séma által tartalmazott objektumokra vonatkozó engedélyeket, amelyek nem rendelkeznek explicit tulajdonosokkal. A sys, dbo vagy information_schema tulajdonosa nem módosítható. |
| TYPE | Nem lehet megváltoztatni a tulajdonjogot egy TYPE olyan gép esetében, amely a SY-hez vagy information_schema-hoz tartozik. |
| CONTRACT, MESSAGE TYPE vagy SERVICE | A rendszerentitások tulajdonjoga nem módosítható. |
| SYMMETRIC KEY | A globális ideiglenes kulcsok tulajdonjoga nem módosítható. |
| CERTIFICATE vagy ASYMMETRIC KEY | Az entitások tulajdonjoga nem ruházható át szerepkörbe vagy csoportba. |
| ENDPOINT | Az egyszerűnek bejelentkezésnek kell lennie. |
ALTER AUTHORIZATION adatbázisokhoz
SQL Server esetében
Az új tulajdonosra vonatkozó követelmények: Az új tulajdonosnévnek a következők egyikének kell lennie:
- SQL Server-hitelesítési bejelentkezés.
- Windows-hitelesítési bejelentkezés Windows-felhasználót (nem csoportot) jelöl.
- Windows-felhasználó, aki windowsos hitelesítési bejelentkezéssel hitelesít egy Windows-csoportot.
Követelmények a kijelentést végrehajtó ALTER AUTHORIZATION személy számára: Ha nem vagy a rendszergazdai fix szerver szerep tagja, legalább TAKE OWNERSHIP jogosultsággal kell rendelkezned az adatbázison, és az új tulajdonos bejelentkezésén IMPERSONATE engedélyed kell lenne.
Az Azure SQL Database-hez
Az új tulajdonosra vonatkozó követelmények: Az új tulajdonosnévnek a következők egyikének kell lennie:
- SQL Server-hitelesítési bejelentkezés.
- A Microsoft Entra-azonosítóban található összevont felhasználó (nem csoport).
- Felügyelt felhasználó (nem csoport) vagy Microsoft Entra-azonosítóban található alkalmazás.
Ha az új tulajdonos Microsoft Entra-felhasználó, nem létezhet felhasználóként abban az adatbázisban, amelyben az új tulajdonos lesz az új adatbázis tulajdonosa (dbo). A Microsoft Entra felhasználót először ki kell távolítani az adatbázisból, mielőtt végrehajtaná a ALTER AUTHORIZATION kijelentést, amely az adatbázis tulajdonosát az új felhasználóra változtatja. További információ a Microsoft Entra-felhasználók SQL Database-sel való konfigurálásáról: Microsoft Entra-hitelesítés konfigurálása.
Követelmények a kijelentést végrehajtó ALTER AUTHORIZATION személy számára: Csatlakoznia kell a cél adatbázishoz, hogy megváltoztasd az adatbázis tulajdonosát.
Az alábbi típusú fiókok módosíthatják az adatbázis tulajdonosát.
- A szolgáltatásszintű egyszerű bejelentkezés, amely az Azure-beli logikai kiszolgáló létrehozásakor kiépített SQL-rendszergazda.
- A logikai kiszolgáló Microsoft Entra-rendszergazdája.
- Az adatbázis jelenlegi tulajdonosa.
Az alábbi táblázat összefoglalja a követelményeket:
| Executor | Target | Result |
|---|---|---|
| SQL Server-hitelesítés bejelentkezése | SQL Server-hitelesítés bejelentkezése | Success |
| SQL Server-hitelesítés bejelentkezése | Microsoft Entra-felhasználó | Fail |
| Microsoft Entra-felhasználó | SQL Server-hitelesítés bejelentkezése | Success |
| Microsoft Entra-felhasználó | Microsoft Entra-felhasználó | Success |
Az adatbázis Microsoft Entra-tulajdonosának ellenőrzéséhez hajtsa végre a következő Transact-SQL parancsot egy felhasználói adatbázisban (ebben a példában testdb).
SELECT CAST(owner_sid as uniqueidentifier) AS Owner_SID
FROM sys.databases
WHERE name = 'testdb';
A kimenet egy GUID (például XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) lesz, amely megfelel az adatbázis tulajdonosaként hozzárendelt Microsoft Entra-felhasználó vagy szolgáltatásnév objektumazonosítójának. Ezt a felhasználó objektumazonosítójának Microsoft Entra-azonosítóban való ellenőrzésével ellenőrizheti. Ha egy SQL Server-hitelesítési bejelentkezési felhasználó az adatbázis tulajdonosa, hajtsa végre a következő utasítást a fő adatbázisban az adatbázis tulajdonosának ellenőrzéséhez:
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;
Ajánlott eljárások
AHelyett, hogy a Microsoft Entra-felhasználókat az adatbázis egyéni tulajdonosaiként használták, egy Microsoft Entra-csoportot használjon a db_owner rögzített adatbázis-szerepkör tagjaként. Az alábbi lépések bemutatják, hogyan konfigurálhat letiltott bejelentkezést adatbázis-tulajdonosként, és hogyan teheti a Microsoft Entra-csoportot (mydbogroup) a db_owner szerepkör tagává.
Jelentkezzen be az SQL Serverre Microsoft Entra-rendszergazdaként, és módosítsa az adatbázis tulajdonosát egy letiltott SQL Server-hitelesítési bejelentkezésre. Például a felhasználói adatbázisból hajtsa végre a következőt:
ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;Hozzon létre egy Microsoft Entra-csoportot, amely az adatbázis tulajdonosa, és adja hozzá felhasználóként a felhasználói adatbázishoz. Például:
CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;A felhasználói adatbázisban adja hozzá a Microsoft Entra csoportot képviselő felhasználót a db_owner rögzített adatbázis-szerepkörhöz. Például:
ALTER ROLE db_owner ADD MEMBER mydbogroup;
A mydbogroup tagok mostantól központilag kezelhetik az adatbázist a db_owner szerepkör tagjaiként.
- Ha a csoport tagjait eltávolítják a Microsoft Entra csoportból, automatikusan elveszítik az adatbázis dbo-engedélyeit.
- Hasonlóképpen, ha új tagokat adnak hozzá a Microsoft Entra-csoporthoz
mydbogroup, automatikusan kapják meg az adatbázis dbo-hozzáférését.
Annak ellenőrzéséhez, hogy egy adott felhasználó rendelkezik-e érvényes dbo-engedéllyel, hajtsa végre a következő utasítást:
SELECT IS_MEMBER ('db_owner');
Az 1 visszatérési érték azt jelzi, hogy a felhasználó tagja a szerepkörnek.
Permissions
Tulajdonosi jogosultságot igényel az entitáson. Ha az új tulajdonos nem az a felhasználó, aki végrehajtja ezt az utasítást, akkor az 1. megszemélyesítési engedélyt is meg kell adnia az új tulajdonosnak, ha az felhasználó vagy bejelentkezés; vagy 2) ha az új tulajdonos szerepkör, tagság a szerepkörben, vagy ALTER engedély a szerepkörre; vagy 3) ha az új tulajdonos egy alkalmazásszerepkör, módosítsa az alkalmazásszerepkör engedélyét.
Examples
A. Tábla tulajdonjogának átadása
Az alábbi példa a tábla Sprockets tulajdonjogát továbbítja a felhasználónak MichikoOsada. A tábla a sémában Partstalálható.
ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO
A lekérdezés az alábbihoz hasonlóan is nézhet ki:
ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO
Ha az objektumséma nem szerepel az utasítás részeként, az adatbázismotor megkeresi az objektumot a felhasználók alapértelmezett sémájában. Például:
ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;
B. Nézet tulajdonjogának átadása a sématulajdonosnak
Az alábbi példa a nézet ProductionView06 tulajdonjogát az azt tartalmazó séma tulajdonosának továbbítja. A nézet a sémában Productiontalálható.
ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO
C. Séma tulajdonjogának átadása egy felhasználónak
Az alábbi példa a séma SeattleProduction11 tulajdonjogát továbbítja a felhasználónak SandraAlayo.
ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO
D. Végpont tulajdonjogának átadása SQL Server-bejelentkezésbe
Az alábbi példa a végpont tulajdonjogát továbbítja a következőnek CantabSalesServer1JaePak: Mivel a végpont egy kiszolgálószintű biztonságos, a végpont csak egy kiszolgálószintű taghoz továbbítható.
Az: SQL Server 2008 (10.0.x) és újabb verziókra vonatkozik.
ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO
E. Tábla tulajdonosának módosítása
Az alábbi példák mindegyike az adatbázis táblájának Sprockets tulajdonosát Parts az adatbázis felhasználójára MichikoOsadamódosítja.
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. Adatbázis tulajdonosának módosítása
A következőkre vonatkozik: SQL Server 2008 (10.0.x) és újabb, Analytics Platform System (PDW), SQL Database.
Az alábbi példa az adatbázis tulajdonosát Parts a bejelentkezésre MichikoOsadamódosítja.
ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;
G. Adatbázis tulajdonosának módosítása Microsoft Entra-felhasználóra
Az alábbi példában az SQL Server microsoft entra-rendszergazdája egy egyéni Microsoft Entra-tartománnyal rendelkező cqclinic.onmicrosoft.comszervezetnél módosíthatja egy adatbázis targetDB jelenlegi tulajdonjogát, és az alábbi paranccsal egy meglévő Microsoft Entra-felhasználót richel@cqclinic.onmicorsoft.com tehet új adatbázis-tulajdonossá:
ALTER AUTHORIZATION ON database::targetDB TO [rachel@cqclinic.onmicrosoft.com];
Lásd még:
OBJECTPROPERTY (Transact-SQL)TYPEPROPERTY (Transact-SQL)EVENTDATA (Transact-SQL)