CREATE USER (Transact-SQL)

Aggiunge un utente al database corrente.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

CREATE USER user_name 
    [ { { FOR | FROM }
      { 
        LOGIN login_name 
        | CERTIFICATE cert_name 
        | ASYMMETRIC KEY asym_key_name
      } 
      | WITHOUT LOGIN
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ]

Argomenti

  • user_name
    Specifica il nome in base al quale l'utente viene identificato nel database. user_name è di tipo sysname. Questo valore può contenere al massimo 128 caratteri.
  • LOGIN login_name
    Specifica l'account di accesso di SQL Server per il quale l'utente del database viene creato. login_name deve essere un account di accesso valido nel server. Quando viene eseguito l'accesso al database tramite questo account di accesso di SQL Server, vengono acquisiti il nome e l'ID dell'utente del database creato.
  • CERTIFICATE cert_name
    Specifica il certificato per il quale viene creato l'utente del database.
  • ASYMMETRIC KEY asym_key_name
    Specifica la chiave asimmetrica per la quale viene creato l'utente del database.
  • WITH DEFAULT_SCHEMA **=**schema_name
    Specifica il primo schema nel quale il server eseguirà una ricerca durante la risoluzione dei nomi di oggetti per l'utente del database.
  • WITHOUT LOGIN
    Specifica che l'utente non deve essere mappato a un account di accesso esistente.

Osservazioni

Se l'argomento FOR LOGIN viene omesso, il nuovo utente del database verrà mappato all'account di accesso di SQL Server con lo stesso nome.

Se DEFAULT_SCHEMA non viene definito, l'utente del database utilizzerà lo schema dbo come schema predefinito. È possibile impostare DEFAULT_SCHEMA su uno schema che non esiste nel database. Può inoltre essere impostato prima della creazione dello schema DEFAULT_SCHEMA a cui punta. DEFAULT_SCHEMA non può essere specificato in caso di creazione di un utente mappato a un gruppo di Windows, un certificato o una chiave asimmetrica.

ms173463.note(it-it,SQL.90).gifImportante:
Il valore di DEFAULT_SCHEMA viene ignorato se l'utente è un membro del ruolo predefinito del server sysadmin. Tutti i membri del ruolo predefinito del server sysadmin dispongono di uno schema predefinito di dbo.

La clausola WITHOUT LOGIN crea un utente non mappato a un account di accesso di SQL Server. Tale utente può connettersi agli altri database come guest.

I nomi di utenti mappati ad account di accesso di SQL Server, certificati o chiavi simmetriche non possono contenere il carattere barra rovesciata (\).

Non è possibile utilizzare l'istruzione CREATE USER per creare un utente guest perché l'utente guest esiste già in ogni database. Per attivare l'utente guest, concedere a tale utente l'autorizzazione CONNECT nel modo illustrato di seguito:

GRANT CONNECT TO guest;
GO

Le informazioni sugli utenti del database sono disponibili nella vista del catalogo sys.database_principals (Transact-SQL).

ms173463.Caution(it-it,SQL.90).gifAttenzione:
Il funzionamento degli schemi in SQL Server 2005 è diverso rispetto alle versioni precedenti di SQL Server. È possibile che il codice in cui gli schemi sono equivalenti agli utenti del database non restituisca risultati corretti. Non utilizzare le viste del catalogo delle versioni precedenti, inclusa sysobjects, nei database in cui sia già stata utilizzata una delle istruzioni DLL seguenti: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. In questi database è necessario utilizzare le nuove viste del catalogo, in cui si tiene conto della separazione tra entità e schemi introdotta in SQL Server 2005. Per ulteriori informazioni sulle viste del catalogo, vedere Viste del catalogo (Transact-SQL).

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY USER nel database.

Esempi

A. Creazione di un utente del database

Nell'esempio seguente viene innanzitutto creato un account di accesso server denominato AbolrousHazem con una password, quindi viene creato il corrispondente utente del database AbolrousHazem in AdventureWorks.

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO 

B. Creazione di un utente del database con un schema predefinito

Nell'esempio seguente viene innanzitutto creato un account di accesso server denominato WanidaBenshoof con una password, quindi viene creato il corrispondente utente del database Wanida con lo schema predefinito Marketing.

CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks;
CREATE USER Wanida FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
GO

C. Creazione di un utente del database da un certificato

Nell'esempio seguente viene creato un utente del database JinghaoLiu dal certificato CarnationProduction50.

USE AdventureWorks;
CREATE CERTIFICATE CarnationProduction50
    WITH SUBJECT = 'Carnation Production Facility Supervisors',
    EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO 

Vedere anche

Riferimento

sys.database_principals (Transact-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)

Altre risorse

Separazione fra schema e utente

Guida in linea e informazioni

Assistenza su SQL Server 2005