Dela via


Skapa ett databasschema

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Warehouse i Microsoft Fabric

I den här artikeln beskrivs hur du skapar ett schema i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.

Behörigheter

  • Om du vill skapa ett schema måste du ha behörigheten SKAPA SCHEMA för databasen.

  • Om du vill ange en annan användare som ägare till schemat som skapas måste anroparen ha PERSONIFIERa behörighet för den användaren. Om en databasroll anges som ägare måste anroparen uppfylla något av följande kriterier: medlemskap i rollen eller ALTER-behörighet för rollen.

Använda SQL Server Management Studio för att skapa ett schema

  1. Expandera mappen Databases i Object Explorer.

  2. Expandera databasen där du vill skapa det nya databasschemat.

  3. Högerklicka på mappen Security, peka på Nyoch välj Schema.

  4. I dialogrutan Schema – Ny på sidan Allmänt anger du ett namn för det nya schemat i rutan Schemanamn.

  5. I rutan Schemaägare anger du namnet på en databasanvändare eller roll som ska äga schemat. Alternativt väljer du Sök för att öppna dialogrutan Sökroller och Användare.

  6. Välj OK.

Not

En dialogruta visas inte om du skapar ett schema med hjälp av SSMS mot en Azure SQL Database- eller en Azure Synapse Analytics-. Du måste köra T-SQL-instruktionen Skapa schemamall som genereras.

Dialogrutan Schema – Ny innehåller även alternativ på två extra sidor: Behörigheter och Utökade egenskaper.

  • På sidan Behörigheter visas alla möjliga skyddsobjekt och behörigheter för de skyddsobjekt som kan beviljas till inloggningen.

  • På sidan Utökade egenskaper kan du lägga till anpassade egenskaper för databasanvändare.

Använda Transact-SQL för att skapa ett schema

  1. I Object Exploreransluter du till en instans av databasmotorn.

  2. I standardfältet väljer du Ny fråga.

  3. I följande exempel skapas ett schema med namnet Chainsoch skapar sedan en tabell med namnet Sizes.

    CREATE SCHEMA Chains;
    
    GO
    
    CREATE TABLE Chains.Sizes
    (
        ChainID INT,
        width DECIMAL (10, 2)
    );
    
  4. Fler alternativ kan utföras i en enda instruktion. Följande exempel skapar schemat Sprockets, som ägs av Joe och innehåller tabellen NineProngs. Uttalandet ger SELECT till Bob och avslår SELECT till 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. Kör följande instruktion för att visa scheman i den aktuella databasen:

    SELECT *
    FROM sys.schemas;
    

Begränsningar och restriktioner

  • Det nya schemat ägs av något av följande huvudnamn på databasnivå: databasanvändare, databasroll eller programroll. Objekt som skapats i ett schema ägs av schemats ägare och har en NULLprincipal_id i sys.objects. Ägarskap av schemabaserade objekt kan överföras till valfri principal på databasnivå, men schemaägaren behåller alltid kontrollbehörighet för objekt i schemat.

  • Domänobjektet läggs till i databasen som ett schema när du skapar ett databasobjekt om du anger ett giltigt domänobjekt (användare eller grupp) som objektägare. Det nya schemat ägs av domänens huvudnamn.