Freigeben über


Erstellen eines Datenbankschemas

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

In diesem Artikel wird beschrieben, wie Fremdschlüsselbeziehungen in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL erstellt werden.

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 für principal_id in sys.objects einen NULL-Wert. Der Besitz von Objekten, die Schemas als Bereich aufweisen, kann an jeden Prinzipal auf Datenbankebene übertragen werden, aber der Schemabesitzer behält immer die CONTROL-Berechtigung für Objekte innerhalb des Schemas.

  • Wenn Sie beim Erstellen eines Datenbankobjekts einen gültigen Domänenprinzipal als Objektbesitzer (Benutzer oder Gruppe) angeben, wird der Domänenprinzipal der Datenbank als Schema hinzugefügt. Das neue Schema befindet sich im Besitz des Domänenprinzipals.

Berechtigungen

  • Erfordert die CREATE SCHEMA-Berechtigung 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 eines Schemas ausführen.

Zusätzliche Optionen

Das Dialogfeld 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 dec(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  
        CREATE TABLE NineProngs (source int, cost int, partnumber int)  
        GRANT SELECT ON SCHEMA::Sprockets TO Bob  
        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;
    

Nächste Schritte

Weitere Informationen finden Sie unter CREATE SCHEMA (Transact-SQL).