Creare uno schema di database

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Questo articolo descrive come creare schemi in SQL Server usando SQL Server Management Studio o Transact-SQL.

Limitazioni e restrizioni

  • Il nuovo schema è di proprietà di una delle seguenti entità a livello di database: utente di database, ruolo di database o ruolo applicazione. Gli oggetti creati all'interno di uno schema appartengono al proprietario dello schema e hanno un valore NULL per principal_id in sys.objects. La proprietà degli oggetti contenuti in uno schema può essere trasferita a qualsiasi entità a livello di database, ma il proprietario dello schema mantiene sempre l'autorizzazione CONTROL per gli oggetti all'interno dello schema.

  • L‘entità di sicurezza del dominio viene aggiunta al database come schema quando si crea un oggetto database, se si specifica un’entità di sicurezza valida (utente o gruppo) come proprietario dell'oggetto. Il proprietario del nuovo schema è l'entità del dominio.

Autorizzazioni

  • È richiesta l'autorizzazione CREATE SCHEMA per il database.

  • Per specificare un altro utente come proprietario dello schema che viene creato, l'utente deve disporre dell'autorizzazione IMPERSONATE per quell'utente. Se si specifica un ruolo di database come proprietario, il chiamante deve appartenere al ruolo oppure deve avere l'autorizzazione ALTER per il ruolo.

Uso di SQL Server Management Studio per creare uno schema

  1. In Esplora oggetti espandere la cartella Database .

  2. Espandere il database in cui si desidera creare il nuovo schema di database.

  3. Fare clic con il pulsante destro del mouse sulla cartella Sicurezza , scegliere Nuovo, quindi selezionare Schema.

  4. Nella finestra di dialogo Schema - Nuovo della pagina Generale immettere un nome per il nuovo schema nella casella Nome schema .

  5. Nella casella Proprietario schema immettere il nome di un utente o ruolo del database proprietario dello schema. In alternativa, selezionare Cerca per aprire la finestra di dialogo Cerca ruoli e utenti .

  6. Seleziona OK.

Nota

Se si sta creando uno schema tramite SSMS su un database SQL di Azure o in Azure Synapse Analytics, la finestra di dialogo non verrà visualizzata. Sarà necessario eseguire l'istruzione di T-SQL per la creazione del modello schema che è stata generata.

Opzioni aggiuntive

Nella finestra di dialogo Schema - Nuovo sono disponibili opzioni anche nelle due pagine aggiuntive Autorizzazioni e Proprietà estese.

  • Nella pagina Autorizzazioni sono elencate tutte le possibili entità a protezione diretta e le autorizzazioni su quelle entità a protezione diretta che possono essere concesse all'account di accesso.

  • La pagina Proprietà estese consente di aggiungere proprietà personalizzate a utenti di database.

Uso di Transact-SQL per creare uno schema

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Nell'esempio seguente viene creato uno schema denominatoChains e poi una tabella denominata Sizes.

    CREATE SCHEMA Chains;
    GO
    CREATE TABLE Chains.Sizes (ChainID int, width dec(10,2));
    
  4. È possibile eseguire opzioni aggiuntive in una singola istruzione. Nell'esempio seguente viene creato lo schema Sprockets, di proprietà di Joe e contenente la tabella NineProngs. L'istruzione concede SELECT a Bob e nega SELECT a 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. Eseguire l'istruzione seguente per visualizzare gli schemi nel database corrente:

    SELECT * FROM sys.schemas;