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.
[! INCLUDE [sql-asdb-asdbmi-asa-pdw-fabricse-fabricdw-fabricsqldb(.. /.. /includes/applies-to-version/sql-asdb-asdbmi-asa-pdw-fabricse-fabricdw-fabricsqldb.md)]
Létrehoz egy sémát az aktuális adatbázisban. A CREATE SCHEMA tranzakció táblákat és nézeteket is létrehozhat az új sémán belül, és beállíthat GRANT, DENYvagy REVOKE engedélyeket ezeken az objektumokon.
Transact-SQL szintaxis konvenciók
Szemantika
Szintaxis az SQL Serverhez, az Azure SQL Database-hez és az SQL Database-hez a Microsoft Fabricben.
CREATE SCHEMA schema_name_clause [ <schema_element> [ ...n ] ]
<schema_name_clause> ::=
{
schema_name
| AUTHORIZATION owner_name
| schema_name AUTHORIZATION owner_name
}
<schema_element> ::=
{
table_definition | view_definition | grant_statement |
revoke_statement | deny_statement
}
Az Azure Synapse Analytics és a párhuzamos adattárház szintaxisa.
CREATE SCHEMA schema_name [ AUTHORIZATION owner_name ] [;]
Érvek
schema_name
Megadja a séma nevét az adatbázisban.
ENGEDÉLYEZÉSI owner_name
Megadja annak az adatbázisszintű egyszerűnek a nevét, amely a sémát fogja birtokolni. Ez az egyszerű séma más sémákkal is rendelkezhet, és előfordulhat, hogy nem az aktuális sémát használja alapértelmezett sémaként.
table_definition
Olyan utasítást CREATE TABLE ad meg, amely létrehoz egy táblát a sémán belül. Az utasítást végrehajtó tagnak engedéllyel kell rendelkeznie CREATE TABLE az aktuális adatbázisban.
view_definition
Olyan utasítást CREATE VIEW ad meg, amely létrehoz egy nézetet a sémán belül. Az utasítást végrehajtó tagnak engedéllyel kell rendelkeznie CREATE VIEW az aktuális adatbázisban.
grant_statement
Olyan utasítást GRANT ad meg, amely az új sémán kívül minden biztonságoshoz engedélyt ad.
revoke_statement
Olyan utasítást REVOKE ad meg, amely visszavonja az engedélyeket az új séma kivételével bármely biztonságos eszközre.
deny_statement
Olyan utasítást DENY ad meg, amely az új sémán kívül bármely biztonságosra vonatkozó engedélyt tagad meg.
Megjegyzések
A nevet nem tartalmazó CREATE SCHEMA AUTHORIZATION, de névvel nem rendelkező utasítások csak a visszamenőleges kompatibilitás érdekében engedélyezettek. Az utasítás nem okoz hibát, de nem hoz létre sémát.
CREATE SCHEMAlétrehozhat egy sémát, a benne található táblákat és nézeteket, valamint GRANTREVOKEaz DENY egyetlen utasításban biztonságossá tett engedélyeket vagy engedélyeket. Ezt az utasítást külön kötegként kell végrehajtania. Az utasítás által CREATE SCHEMA létrehozott objektumok a létrehozott sémában jönnek létre.
CREATE SCHEMA a tranzakciók atomiak. Ha egy utasítás végrehajtása CREATE SCHEMA során bármilyen hiba történik, a rendszer nem hozza létre a megadott biztonságos kulcsokat, és nem kap engedélyeket.
A más nézetekre hivatkozó nézetek kivételével tetszőleges sorrendben listázhatja a létrehozandó CREATE SCHEMA biztonságos elemet. Ebben az esetben a hivatkozott nézetet az arra hivatkozó nézet előtt kell létrehozni.
Ezért az GRANT utasítás engedélyt adhat egy objektumnak, mielőtt maga az objektum létrejön, vagy egy CREATE VIEW utasítás megjelenhet a CREATE TABLE nézet által hivatkozott táblákat létrehozó utasítások előtt. Az CREATE TABLE utasítások emellett deklarálhatják az utasítás későbbi részében definiált táblák idegen kulcsait CREATE SCHEMA is.
Megjegyzés:
DENY és REVOKE a belső CREATE SCHEMA utasítások támogatják.
DENY és REVOKE a záradékok végrehajtása abban a sorrendben történik, amelyben azok megjelennek az CREATE SCHEMA utasításban.
A végrehajtott CREATE SCHEMA egyszerű rendszernév megadhat egy másik adatbázisnevet a létrehozott séma tulajdonosaként. Ehhez a művelethez további engedélyekre van szükség, ahogyan azt a cikk későbbi , Engedélyek szakaszában is ismertetjük.
Az új séma az alábbi adatbázisszintű tagok egyikének tulajdonosa: adatbázis-felhasználó, adatbázis-szerepkör vagy alkalmazásszerepkör. A sémában létrehozott objektumok a séma tulajdonosának tulajdonában vannak, és null principal_id értékűek sys.objects. A séma által tartalmazott objektumok tulajdonjogát bármely adatbázisszintű tagra átruházhatja, de a sématulajdonos mindig fenntartja CONTROL az engedélyeket a sémán belüli objektumokra.
Megjegyzés:
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.
Implicit séma és felhasználólétrehozás
Megjegyzés:
A Microsoft Entra ID-t korábban Azure Active Directorynak (Azure AD) nevezték.
Bizonyos esetekben a felhasználók adatbázis-felhasználói fiók (az adatbázis egyszerű adatbázisa) nélkül is használhatják az adatbázist. Ez a feltétel a következő esetekben fordulhat elő:
A bejelentkezéshez jogosultságok vannak
CONTROL SERVER.A Windows-felhasználók nem rendelkeznek egyéni adatbázis-felhasználói fiókkal (az adatbázisnévvel az adatbázisban), de egy adatbázist egy olyan Windows-csoport tagjaként érnek el, amely rendelkezik adatbázis-felhasználói fiókkal (a Windows-csoport egyik egyszerű adatbázisával).
A Microsoft Entra-felhasználók nem rendelkeznek egyéni adatbázis-felhasználói fiókkal (az adatbázisban egy egyszerű adatbázissal), hanem egy adatbázishoz férnek hozzá egy olyan Microsoft Entra-csoport tagjaként, amely rendelkezik adatbázis-felhasználói fiókkal (a Microsoft Entra-csoport egyik egyszerű adatbázisával).
Ha egy adatbázis-felhasználói fiókkal nem rendelkező felhasználó létrehoz egy objektumot meglévő séma megadása nélkül, a rendszer automatikusan létrehoz egy adatbázisnevet és egy alapértelmezett sémát az adatbázisban. A létrehozott adatbázisnév és -séma neve megegyezik az SQL Serverhez való csatlakozáskor használt névvel (az SQL Server hitelesítési bejelentkezési nevével vagy a Windows felhasználónévvel).
Ez a viselkedés szükséges ahhoz, hogy a Windows-csoportokon alapuló felhasználók objektumokat hozzanak létre és sajátozzanak el. Ez azonban sémák és felhasználók véletlen létrehozását eredményezheti. A felhasználók és sémák implicit létrehozásának elkerülése érdekében lehetőség szerint explicit módon hozzon létre adatbázis-tagokat, és rendeljen hozzá egy alapértelmezett sémát. Vagy explicit módon adjon meg egy meglévő sémát, amikor objektumokat hoz létre egy adatbázisban két vagy háromrészes objektumnevek használatával.
A Microsoft Entra-felhasználó implicit létrehozása nem lehetséges az SQL Database-ben. Mivel a Microsoft Entra-felhasználó külső szolgáltatótól való létrehozásakor ellenőriznie kell a felhasználó állapotát a Microsoft Entra-azonosítóban, a felhasználó létrehozása a 2760-as hibával meghiúsul: The specified schema name "<user@domain>" either does not exist or you do not have permission to use it. Majd a 2759-as hiba: CREATE SCHEMA failed due to previous errors.
A sémák létrehozására vagy módosítására tett kísérletek az 15151-et eredményezik, Cannot find the user '', because it does not exist or you do not have permission.amelyet a 2759-ös hiba követ. A hibák megkerüléséhez hozza létre a Microsoft Entra-felhasználót egy külső szolgáltatótól, vagy módosítsa a Microsoft Entra csoportot egy alapértelmezett séma hozzárendeléséhez. Ezután futtassa újra az objektumot létrehozó utasítást.
A Microsoft Fabric SQL Analytics-végpontjában és warehouse-jában a sémanevek nem tartalmazhatnak / vagy \ végződhetnek ..
Elavulással kapcsolatos értesítés
CREATE SCHEMA A sémanevet nem tartalmazó utasítások jelenleg támogatottak a visszamenőleges kompatibilitás érdekében. Ezek az utasítások valójában nem hoznak létre sémát az adatbázisban, de táblákat és nézeteket hoznak létre, és engedélyeket adnak. A rendszerbiztonsági tagoknak nincs szükségük engedélyre CREATE SCHEMA a korábbi formájának CREATE SCHEMAvégrehajtásához, mert nem jön létre séma. Ez a funkció el lesz távolítva az SQL Server egy későbbi kiadásából.
Engedélyek
Az adatbázishoz CREATE SCHEMA engedély szükséges.
Az utasításban CREATE SCHEMA megadott objektum létrehozásához a felhasználónak rendelkeznie kell a megfelelő CREATE engedéllyel.
Ha egy másik felhasználót szeretne megadni a létrehozott séma tulajdonosaként, a hívónak engedéllyel kell rendelkeznie IMPERSONATE az adott felhasználóhoz. Ha egy adatbázis-szerepkör van megadva tulajdonosként, a hívónak a következők egyikével kell rendelkeznie: tagsággal kell rendelkeznie a szerepkörben, vagy ALTER engedélyt kell adnia a szerepkörre.
A visszamenőlegesen kompatibilis szintaxis esetében a rendszer nem ellenőrzi az CREATE SCHEMA engedélyeket, mert nem jön létre séma.
Engedélyek a Fabric Data Warehouse-ban
A Fabric Data Warehouse-ban az CREATE SCHEMA engedélyen kívül a felhasználónak rendszergazdai, tagi vagy közreműködői munkaterületi szerepkörrel kell rendelkeznie.
Példák
Egy. Séma létrehozása és engedélyek megadása
Az alábbi példa olyan sémát Sprockets hoz létre, amely Annik a táblát NineProngstartalmazza. A nyilatkozat SELECT ad Mandar-nek, és megtagadja SELECT-t Prasanna-től.
Sprockets és NineProngs egyetlen utasításban jönnek létre.
USE AdventureWorks2022;
GO
CREATE SCHEMA Sprockets AUTHORIZATION Annik
CREATE TABLE NineProngs
(
source INT,
cost INT,
partnumber INT
)
GRANT SELECT ON SCHEMA::Sprockets TO Mandar
DENY SELECT ON SCHEMA::Sprockets TO Prasanna;
GO
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
B. Séma és tábla létrehozása a sémában
Az alábbi példa sémát Sales hoz létre, majd létrehoz egy táblát Sales.Region a sémában.
CREATE SCHEMA Sales;
GO
CREATE TABLE Sales.Region
(
Region_id INT NOT NULL,
Region_Name CHAR (5) NOT NULL
)
WITH (DISTRIBUTION = REPLICATE);
GO
C. Séma tulajdonosának beállítása
Az alábbi példa létrehoz egy sémát Production , és tulajdonosként állítja be Mary .
CREATE SCHEMA Production AUTHORIZATION [Contoso\Mary];
GO