Creazione di uno schema di databaseCreate a Database Schema

In questo argomento si illustra come creare uno schema in SQL Server 2017SQL Server 2017 utilizzando SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to create a schema in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Contenuto dell'argomentoIn This Topic

Prima di iniziare Before You Begin

Limitazioni e restrizioni Limitations and Restrictions

  • Il nuovo schema è di proprietà di una delle seguenti entità a livello di database: utente di database, ruolo di database o ruolo applicazione.The new schema is owned by one of the following database-level principals: database user, database role, or application role. Gli oggetti creati all'interno di uno schema appartengono al proprietario dello schema e hanno un valore NULL per principal_id in sys.objects.Objects created within a schema are owned by the owner of the schema, and have a NULL 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.Ownership of schema-contained objects can be transferred to any database-level principal, but the schema owner always retains CONTROL permission on objects within the schema.

  • Quando si crea un oggetto di database, se si specifica un'entità del dominio valida (utente o gruppo) come proprietario dell'oggetto, l'entità del dominio viene aggiunta al database come uno schema.When creating a database object, if you specify a valid domain principal (user or group) as the object owner, the domain principal is added to the database as a schema. Il proprietario del nuovo schema è l'entità del dominio.The new schema is owned by that domain principal.

Sicurezza Security

Autorizzazioni Permissions

  • È richiesta l'autorizzazione CREATE SCHEMA per il database.Requires CREATE SCHEMA permission on the database.

  • Per specificare un altro utente come proprietario dello schema che viene creato, l'utente deve disporre dell'autorizzazione IMPERSONATE per quell'utente.To specify another user as the owner of the schema being created, the caller must have IMPERSONATE permission on that user. Se si specifica un ruolo di database come proprietario, il chiamante deve appartenere al ruolo oppure deve avere l'autorizzazione ALTER per il ruolo.If a database role is specified as the owner, the caller must meet one of the following criteria: membership in the role or ALTER permission on the role.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per creare uno schemaTo create a schema
  1. In Esplora oggetti espandere la cartella Database .In Object Explorer, expand the Databases folder.

  2. Espandere il database in cui si desidera creare il nuovo schema di database.Expand the database in which to create the new database schema.

  3. Fare clic con il pulsante destro del mouse sulla cartella Sicurezza , scegliere Nuovo, quindi selezionare Schema.Right-click the Security folder, point to New, and select Schema.

  4. Nella finestra di dialogo Schema - Nuovo della pagina Generale immettere un nome per il nuovo schema nella casella Nome schema .In the Schema - New dialog box, on the General page, enter a name for the new schema in the Schema name box.

  5. Nella casella Proprietario schema immettere il nome di un utente o ruolo del database proprietario dello schema.In the Schema owner box, enter the name of a database user or role to own the schema. In alternativa, fare clic su Cerca per aprire la finestra di dialogo Cerca ruoli e utenti .Alternately, click Search to open the Search Roles and Users dialog box.

  6. Fare clic su OK.Click OK.

Opzioni aggiuntiveAdditional Options

Nella finestra di dialogo Schema - Nuovo sono inoltre disponibili opzioni in due pagine aggiuntive, cioè Autorizzazioni e Proprietà estese.The Schema– New dialog box also offers options on two additional pages: Permissions and Extended Properties.

  • 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.The Permissions page lists all possible securables and the permissions on those securables that can be granted to the login.

  • La pagina Proprietà estese consente di aggiungere proprietà personalizzate a utenti di database.The Extended properties page allows you to add custom properties to database users.

Utilizzo di Transact-SQL Using Transact-SQL

Per creare uno schemaTo create a schema

  1. In Esplora oggetticonnettersi a un'istanza del Motore di databaseDatabase Engine.In Object Explorer, connect to an instance of Motore di databaseDatabase Engine.

  2. Sulla barra Standard fare clic su Nuova query.On the Standard bar, click New Query.

  3. Nell'esempio seguente viene creato uno schema denominatoChains e poi una tabella denominata Sizes.The following example creates a schema named Chains, and then creates a table named Sizes.

    CREATE SCHEMA Chains;
    GO
    CREATE TABLE Chains.Sizes (ChainID int, width dec(10,2));
    
  4. È possibile eseguire opzioni aggiuntive in una singola istruzione.Additional options can be performed in a single statement. Nell'esempio seguente viene creato lo schema Sprockets, di proprietà di Annik contenente la tabella NineProngs.The following example creates the schema Sprockets owned by Annik that contains table NineProngs. L'istruzione concede SELECT a Mandar e nega SELECT a Prasanna.The statement grants SELECT to Mandar and denies SELECT to Prasanna.

    CREATE SCHEMA Sprockets AUTHORIZATION Annik  
        CREATE TABLE NineProngs (source int, cost int, partnumber int)  
        GRANT SELECT ON SCHEMA::Sprockets TO Mandar  
        DENY SELECT ON SCHEMA::Sprockets TO Prasanna;  
    GO  
    
  5. Eseguire l'istruzione seguente per visualizzare gli schemi in questo database:Execute the following statement, to view the schemas in this database:

    SELECT * FROM sys.schemas;
    

    Per altre informazioni, vedere CREATE SCHEMA (Transact-SQL).For more information, see CREATE SCHEMA (Transact-SQL).