Freigeben über


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

  1. Erweitern Sie im Objekt-Explorer den Ordner Datenbanken .

  2. Erweitern Sie die Datenbank, in der das neue Datenbankschema erstellt werden soll.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Sicherheit , zeigen Sie auf Neu, und wählen Sie Schemaaus.

  4. Geben Sie im Dialogfeld Schema - Neu auf der Seite Allgemein im Feld Schemaname einen Namen für das neue Schema ein.

  5. 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.

  6. 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

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Im folgenden Beispiel wird das Schema Chains erstellt, und anschließend die Tabelle Sizes.

    CREATE SCHEMA Chains;
    
    GO
    
    CREATE TABLE Chains.Sizes
    (
        ChainID INT,
        width DECIMAL (10, 2)
    );
    
  4. Weitere Optionen können in einer einzelnen Anweisung durchgeführt werden. Das folgende Beispiel erstellt das Sprockets-Schema, das im Besitz von Joe ist und die NineProngs-Tabelle enthält. Die Anweisung erteilt die SELECT-Berechtigung für Bob und verweigert die SELECT-Berechtigung für John.

    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
    
  5. 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 NULLprincipal_id in sys.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.