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
Biztonságossá tétele sémák között.
Transact-SQL szintaxis konvenciók
Szemantika
-- Syntax for SQL Server and Azure SQL Database
ALTER SCHEMA schema_name
TRANSFER [ <entity_type> :: ] securable_name
[;]
<entity_type> ::=
{
Object | Type | XML Schema Collection
}
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
ALTER SCHEMA schema_name
TRANSFER [ OBJECT :: ] securable_name
[;]
Érvek
schema_name
A célséma az aktuális adatbázisban. A biztonságossá tétel ebbe a sémába kerül. Nem lehet SYS vagy INFORMATION_SCHEMAnem.
<entity_type>
Annak az entitásnak az osztálya, amelyhez a tulajdonost módosítják. Az alapértelmezett objektum az objektum.
securable_name
A sémába áthelyezhető séma hatókörű biztonságos egy- vagy kétrészes neve.
Megjegyzések
A felhasználók és a sémák teljesen különállóak. 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.
Az ALTER SCHEMA csak az ugyanazon adatbázis sémái közötti biztonságossá tételre használható. Ha módosítani vagy elvetni szeretne egy biztonságossá tett elemet egy sémán belül, használja az adott biztonságosra vonatkozó ALTER vagy DROP utasítást.
Ha egy egyrészes nevet használ a securable_name, a rendszer a jelenleg érvényben lévő névfeloldási szabályokat használja a biztonságos kulcs megkereséséhez.
A biztonságossá tételhez társított összes engedély elvetve lesz, amikor a biztonságossá vált az új sémába. Ha a biztonságos kulcs tulajdonosa kifejezetten be van állítva, a tulajdonos változatlan marad. Ha a biztonságos eszköz tulajdonosa SÉMATULAJDONOS értékre van állítva, a tulajdonos sématulajdonos marad; az áthelyezés után azonban a SÉMATULAJDONOS feloldja az új séma tulajdonosát. Az principal_id új tulajdonos lesz NULL.
Fontos
Ha ALTER SCHEMA egy tárolt eljárást, függvényt, nézetet vagy eseményindítót egy másik sémába szeretne átvinni, az nem módosítja a definition katalógusnézet oszlopában lévő objektum sémanevét, illetve a beépített OBJECT_DEFINITION függvény eredményét.
ALTER SCHEMA Ezért ezeket az objektumtípusokat nem szabad áthelyezni. Ehelyett helyezze el és hozza létre újra az objektumot az új sémában.
Ha áthelyez egy objektumot, például egy táblát vagy szinonimát, az nem frissíti automatikusan az adott objektumra mutató hivatkozásokat. Minden olyan objektumot módosítania kell, amely manuálisan hivatkozik az átvitt objektumra. Ha például áthelyez egy táblát, és egy eseményindító hivatkozik rá, az eseményindítót úgy kell módosítania, hogy az tükrözze az új séma nevét. A sys.sql_expression_dependencies használatával listázhatja az objektum függőségeit az áthelyezés előtt.
Ha módosítani szeretné egy tábla sémáját az SQL Server Management Studio használatával, az Object Explorerben kattintson a jobb gombbal a táblára, majd válassza a Tervezés lehetőséget. A Tulajdonságok ablak megnyitásához nyomja le az F4 billentyűt . A Séma mezőben válasszon ki egy új sémát.
Az ALTER SCHEMA sémaszintű zárolást használ.
Figyelmeztetés
A Fabric SQL Analytics-végponton a táblák T-SQL-en keresztüli átvitele nem támogatott. Negatív hatással lehet a OneLake és az SQL Analytics-végpont közötti szinkronizálási műveletre.
Engedélyek
Ha egy másik sémából szeretne biztonságossá tenni egy biztonságosat, az aktuális felhasználónak CONTROL engedéllyel kell rendelkeznie a biztonságos (nem séma) és alter engedéllyel a célséma esetében.
Ha a biztonságos eszköz rendelkezik az EXECUTE AS OWNER specifikációval, és a tulajdonos SÉMATULAJDONOS értékre van állítva, a felhasználónak impERSONATE engedéllyel kell rendelkeznie a célséma tulajdonosához is.
Az átvitt biztonságossá tételhez társított összes engedély elvetve lesz az áthelyezéskor.
Példák
Egy. Tábla tulajdonjogának átadása
Az alábbi példa úgy módosítja a sémátHumanResources, hogy a táblát Address a sémából a Person sémába HumanResources alakítja át.
USE AdventureWorks2022;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO
B. Egy típus tulajdonjogának átruházása
Az alábbi példa létrehoz egy típust a Production sémában, majd átviszi a típust a Person sémába.
USE AdventureWorks2022;
GO
CREATE TYPE Production.TestType FROM [VARCHAR](10) NOT NULL ;
GO
-- Check the type owner.
SELECT sys.types.name, sys.types.schema_id, sys.schemas.name
FROM sys.types JOIN sys.schemas
ON sys.types.schema_id = sys.schemas.schema_id
WHERE sys.types.name = 'TestType' ;
GO
-- Change the type to the Person schema.
ALTER SCHEMA Person TRANSFER type::Production.TestType ;
GO
-- Check the type owner.
SELECT sys.types.name, sys.types.schema_id, sys.schemas.name
FROM sys.types JOIN sys.schemas
ON sys.types.schema_id = sys.schemas.schema_id
WHERE sys.types.name = 'TestType' ;
GO
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
C. Tábla tulajdonjogának átadása
Az alábbi példa létrehoz egy táblát Region a dbo sémában, létrehoz egy sémát Sales , majd áthelyezi a Region táblát a dbo sémából a Sales sémába.
CREATE TABLE dbo.Region
(Region_id INT NOT NULL,
Region_Name CHAR(5) NOT NULL)
WITH (DISTRIBUTION = REPLICATE);
GO
CREATE SCHEMA Sales;
GO
ALTER SCHEMA Sales TRANSFER OBJECT::dbo.Region;
GO