Een databaseschema maken
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Warehouse in Microsoft Fabric
In dit artikel wordt beschreven hoe u een schema maakt in SQL Server met behulp van SQL Server Management Studio of Transact-SQL.
Machtigingen
Als u een schema wilt maken, moet u de machtiging SCHEMA MAKEN voor de database hebben.
Als u een andere gebruiker wilt opgeven als de eigenaar van het schema dat wordt gemaakt, moet de aanroeper de machtiging IMPERSONEREN voor die gebruiker hebben. Als een databaserol is opgegeven als eigenaar, moet de aanroeper voldoen aan een van de volgende criteria: lidmaatschap van de rol of ALTER-machtiging voor de rol.
SQL Server Management Studio gebruiken om een schema te maken
Vouw in Objectverkenner de map Databases uit.
Vouw de database uit waarin u het nieuwe databaseschema wilt maken.
Klik met de rechtermuisknop op de map Security, wijs Nieuwaan en selecteer Schema.
Voer in het dialoogvenster Schema - Nieuw op de pagina Algemeen een naam in voor het nieuwe schema in het vak Schemanaam.
Voer in het vak Schema-eigenaar de naam in van een databasegebruiker of -rol om de eigenaar van het schema te zijn. U kunt ook Zoeken selecteren om het dialoogvenster Rollen en Gebruikers Zoeken te openen.
Selecteer OK-.
Notitie
Er wordt geen dialoogvenster weergegeven als u een schema maakt met behulp van SSMS voor een Azure SQL Database- of een Azure Synapse Analytics-. U moet de gegenereerde T-SQL-instructie voor het aanmaken van een schemasjabloon uitvoeren.
Het dialoogvenster Schema - Nieuw biedt ook opties op twee extra pagina's: machtigingen en uitgebreide eigenschappen.
De pagina Machtigingen bevat alle mogelijke beveiligbare objecten en de machtigingen voor die beveiligbare objecten die aan de aanmelding kunnen worden verleend.
Met de uitgebreide eigenschappen pagina kunt u aangepaste eigenschappen toevoegen aan databasegebruikers.
Een schema maken met behulp van Transact-SQL
Maak in Objectverkennerverbinding met een exemplaar van Database Engine.
Selecteer op de standaardbalk Nieuwe query.
In het volgende voorbeeld wordt een schema met de naam
Chains
gemaakt en wordt vervolgens een tabel met de naamSizes
gemaakt.CREATE SCHEMA Chains; GO CREATE TABLE Chains.Sizes ( ChainID INT, width DECIMAL (10, 2) );
Er kunnen meer opties worden uitgevoerd in één instructie. In het volgende voorbeeld wordt het schema
Sprockets
gemaakt dat eigendom is vanJoe
en de tabelNineProngs
bevat. De verklaring verleentSELECT
aanBob
en weigertSELECT
aanJohn
.CREATE SCHEMA Sprockets AUTHORIZATION Joe; GO CREATE TABLE NineProngs ( source INT, cost INT, partnumber INT ); GO GRANT SELECT ON SCHEMA::Sprockets TO Bob; GO DENY SELECT ON SCHEMA::Sprockets TO John; GO
Voer de volgende instructie uit om de schema's in de huidige database weer te geven:
SELECT * FROM sys.schemas;
Beperkingen en beperkingen
Het nieuwe schema is eigendom van een van de volgende principals op databaseniveau: databasegebruiker, databaserol of toepassingsrol. Objecten die in een schema zijn gemaakt, zijn eigendom van de eigenaar van het schema en hebben een
NULL
principal_id
insys.objects
Eigendom van in schema opgenomen objecten kunnen worden overgedragen naar elke principal op databaseniveau, maar de eigenaar van het schema behoudt altijd control-machtigingen voor objecten binnen het schema.De domeinprincipal wordt als schema aan de database toegevoegd wanneer u een databaseobject maakt als u een geldige domein-principal (gebruiker of groep) opgeeft als objecteigenaar. Het nieuwe schema is eigendom van die domeinprincipaal.