Erstellen eines Datenbankschemas
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Warehouse in Microsoft Fabric
In diesem Artikel wird beschrieben, wie Fremdschlüsselbeziehungen in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellt werden.
Berechtigungen
Zum Erstellen eines Schemas benötigen Sie die BERECHTIGUNG CREATE SCHEMA für die Datenbank.
Um einen anderen Benutzer als den Besitzer des zu erstellenden Schemas anzugeben, benötigt der Aufrufer die IMPERSONATE-Berechtigung für diesen Benutzer. Wenn eine Datenbankrolle als Besitzer angegeben wird, muss der Aufrufer entweder über eine Mitgliedschaft in der Rolle oder die ALTER-Berechtigung für die Rolle verfügen.
Erstellen von Statistiken mithilfe von SQL Server Management Studio
Erweitern Sie im Objekt-Explorer den Ordner Datenbanken .
Erweitern Sie die Datenbank, in der das neue Datenbankschema erstellt werden soll.
Klicken Sie mit der rechten Maustaste auf den Ordner Sicherheit , zeigen Sie auf Neu, und wählen Sie Schemaaus.
Geben Sie im Dialogfeld Schema - Neu auf der Seite Allgemein im Feld Schemaname einen Namen für das neue Schema ein.
Geben Sie im Feld Schemabesitzer den Namen eines Datenbankbenutzers oder einer Rolle ein, der bzw. die über das Schema verfügen soll. Klicken Sie alternativ auf Suchen , um das Dialogfeld Rollen und Benutzer suchen zu öffnen.
Wählen Sie OK aus.
Hinweis
Es wird kein Dialogfeld angezeigt, wenn Sie mithilfe von SSMS ein Schema für eine Azure SQL-Datenbank oder Azure Synapse Analytics erstellen. Sie müssen die generierte T-SQL-Anweisung zum Erstellen einer Schemavorlage ausführen.
Der Dialog Schema – Neu verfügt zudem über Optionen auf zwei zusätzlichen Seiten: Berechtigungen und Erweiterte Eigenschaften.
Auf der Seite Berechtigungen werden alle möglichen sicherungsfähigen Elemente und die Berechtigungen für diese sicherungsfähigen Elemente aufgelistet, die für die Anmeldung gewährt werden können.
Mithilfe der Seite Erweiterte Eigenschaften können Sie Datenbankbenutzern benutzerdefinierte Eigenschaften hinzufügen.
Verwenden von Transact-SQL zum Erstellen eines Schemas
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Im folgenden Beispiel wird das Schema
Chains
erstellt, und anschließend die TabelleSizes
.CREATE SCHEMA Chains; GO CREATE TABLE Chains.Sizes ( ChainID INT, width DECIMAL (10, 2) );
Weitere Optionen können in einer einzelnen Anweisung durchgeführt werden. Das folgende Beispiel erstellt das
Sprockets
-Schema, das im Besitz vonJoe
ist und dieNineProngs
-Tabelle enthält. Die Anweisung erteilt dieSELECT
-Berechtigung fürBob
und verweigert dieSELECT
-Berechtigung fürJohn
.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
Führen Sie die folgende Anweisung aus, um die Schemas in dieser Datenbank anzuzeigen:
SELECT * FROM sys.schemas;
Einschränkungen
Das neue Schema ist im Besitz einer der folgenden Prinzipale auf Datenbankebene: Datenbankbenutzer, Datenbankrolle oder Anwendungsrolle. Objekte, die innerhalb eines Schemas erstellt werden, gehören dem Besitzer des Schemas und haben eine
NULL
principal_id
insys.objects
. Der Besitz von schemabasierten Objekten kann an einen beliebigen Prinzipal auf Datenbankebene übertragen werden, aber der Schemabesitzer behält immer die CONTROL-Berechtigung für Objekte innerhalb des Schemas.Der Domänenprinzipal wird der Datenbank als Schema hinzugefügt, wenn Sie beim Erstellen eines Datenbankobjekts einen gültigen Domänenprinzipal als Objektbesitzer:in (Benutzer:in oder Gruppe) angeben. Das neue Schema befindet sich im Besitz des Domänenprinzipals.