CREATE USER (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database SíInstancia administrada de Azure SQL síAzure Synapse Analytics síAlmacenamiento de datos paralelos

Agrega un usuario a la base de datos actual. Los 12 tipos de usuarios se enumeran a continuación con un ejemplo de la sintaxis más sencilla:

Usuarios basados en inicios de sesión en la base de datos principal: se trata del tipo de usuario más habitual.

  • Usuario basado en un inicio de sesión basado en un grupo de Windows Active Directory. CREATE USER [Contoso\Fritz];
  • Usuario basado en un inicio de sesión basado en un grupo de Windows. CREATE USER [Contoso\Sales];
  • Usuario basado en un inicio de sesión mediante autenticación de SQL Server. CREATE USER Mary;

Usuarios que se autentican en la base de datos: se recomienda para ayudar a que la base de datos sea más portable.
Siempre se admite en SQL Database. Solo se admite en una base de datos independiente en SQL Server.

  • Usuario basado en un usuario de Windows sin inicio de sesión. CREATE USER [Contoso\Fritz];

  • Usuario basado en un grupo de Windows sin inicio de sesión. CREATE USER [Contoso\Sales];

  • Usuario de SQL Database o Azure Synapse Analytics basado en un usuario de Azure Active Directory. CREATE USER [Fritz@contoso.com] FROM EXTERNAL PROVIDER;

  • Usuario de base de datos independiente con contraseña. (No está disponible en Azure Synapse Analytics). CREATE USER Mary WITH PASSWORD = '********';

Usuarios basados en entidades de seguridad de Windows que conectan a través de inicios de sesión de grupo de Windows

  • Usuario basado en un usuario de Windows sin inicio de sesión, pero que se puede conectar a Motor de base de datos mediante la pertenencia a un grupo de Windows. CREATE USER [Contoso\Fritz];

  • Usuario basado en un grupo de Windows sin inicio de sesión, pero que se puede conectar a Motor de base de datos mediante la pertenencia a un grupo distinto de Windows. CREATE USER [Contoso\Fritz];

Usuarios que no se pueden autenticar: estos usuarios no pueden iniciar sesión en SQL Server ni en SQL Database.

  • Usuario sin inicio de sesión. No puede iniciar sesión, pero se le pueden conceder permisos. CREATE USER CustomApp WITHOUT LOGIN;
  • Usuario basado en un certificado. No puede iniciar sesión, pero se le pueden conceder permisos y puede firmar módulos. CREATE USER TestProcess FOR CERTIFICATE CarnationProduction50;
  • Usuario basado en una clave asimétrica. No puede iniciar sesión, pero se le pueden conceder permisos y puede firmar módulos. CREATE User TestProcess FROM ASYMMETRIC KEY PacificSales09;

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

-- Syntax for SQL Server, Azure SQL Database, and Azure SQL Managed Instance
  
-- Syntax Users based on logins in master  
CREATE USER user_name   
    [   
        { FOR | FROM } LOGIN login_name   
    ]  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that authenticate at the database  
CREATE USER   
    {  
      windows_principal [ WITH <options_list> [ ,... ] ]  
  
    | user_name WITH PASSWORD = 'password' [ , <options_list> [ ,... ]   
    | Azure_Active_Directory_principal FROM EXTERNAL PROVIDER   
    }  
  
 [ ; ]  
  
-- Users based on Windows principals that connect through Windows group logins  
CREATE USER   
    {   
          windows_principal [ { FOR | FROM } LOGIN windows_principal ]  
        | user_name { FOR | FROM } LOGIN windows_principal  
}  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that cannot authenticate   
CREATE USER user_name   
    {  
         WITHOUT LOGIN [ WITH <limited_options_list> [ ,... ] ]  
       | { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  
  
<options_list> ::=  
      DEFAULT_SCHEMA = schema_name  
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }  
    | SID = sid   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name ]   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
-- SQL Database syntax when connected to a federation member  
CREATE USER user_name  
[;]

-- Syntax for users based on Azure AD logins for Azure SQL Managed Instance
CREATE USER user_name   
    [   { FOR | FROM } LOGIN login_name  ]  
    | FROM EXTERNAL PROVIDER
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  

<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name 
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ] 

Nota

La funcionalidad de administrador de Azure AD de Azures SQL Managed Instance después de la creación ha cambiado. Para obtener más información, consulte Nueva funcionalidad de administrador de Azure AD para MI.

-- Syntax for Azure Synapse Analytics  
  
CREATE USER user_name   
    [ { { FOR | FROM } { LOGIN login_name }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

CREATE USER Azure_Active_Directory_principal FROM EXTERNAL PROVIDER  
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]
-- Syntax for Parallel Data Warehouse  
  
CREATE USER user_name   
    [ { { FOR | FROM }  
      {   
        LOGIN login_name   
      }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]  

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

user_name

Especifica el nombre por el que se identifica al usuario en esta base de datos. user_name es sysname. Puede tener una longitud máxima de 128 caracteres. Cuando se crea un usuario basado en una entidad de seguridad de Windows, el nombre de esta entidad se convierte en el nombre de usuario a menos que se especifique otro nombre de usuario.

LOGIN login_name

Especifica el inicio de sesión para el que se crea el usuario de base de datos. login_name debe ser un inicio de sesión válido en el servidor. Puede ser un inicio de sesión basado en una entidad de seguridad de Windows (usuario o grupo) o un inicio de sesión con autenticación de SQL Server. Cuando este inicio de sesión de SQL Server accede a la base de datos, adquiere el nombre y el identificador del usuario de la base de datos que se está creando. Cuando cree un inicio de sesión asignado a una entidad de seguridad de Windows, use el formato [ <domainName> \ <loginName> ] . Para obtener ejemplos, vea Resumen de la sintaxis.

Si la instrucción CREATE USER es la única instrucción en un lote SQL, Azure SQL Database admite la cláusula WITH LOGIN. Si la instrucción CREATE USER no es la única instrucción en un lote SQL ni se ejecuta en SQL dinámico, la cláusula WITH LOGIN no se admite.

WITH DEFAULT_SCHEMA = schema_name

Especifica el primer esquema donde buscará el servidor cuando resuelva los nombres de objetos de este usuario de base de datos.

'windows_principal'

Especifica la entidad de seguridad de Windows para la que se crea el usuario de base de datos. windows_principal puede ser un usuario de Windows o un grupo de Windows. El usuario se creará aunque el parámetro windows_principal no disponga de inicio de sesión. Cuando se conecte a SQL Server, si el parámetro windows_principal no dispone de inicio de sesión, la entidad de seguridad de Windows se debe autenticar en Motor de base de datos mediante la pertenencia a un grupo de Windows que disponga de inicio de sesión o la cadena de conexión debe especificar la base de datos independiente como el catálogo inicial. Cuando cree un usuario a partir de una entidad de seguridad de Windows, use el formato [ <domainName> \ <loginName> ] . Para obtener ejemplos, vea Resumen de la sintaxis. Los usuarios basados en usuarios de Active Directory se limitan a nombres de menos de 21 caracteres.

'Azure_Active_Directory_principal'

Se aplica a: SQL Database, Azure Synapse Analytics.

Especifica la entidad de seguridad de Azure Active Directory para la que se crea el usuario de base de datos. Azure_Active_Directory_principal puede ser un usuario, un grupo o una aplicación de Azure Active Directory. (Los usuarios de Azure Active Directory no pueden tener inicios de sesión de autenticación de Windows en SQL Database; solo los usuarios de base de datos). La cadena de conexión debe especificar la base de datos independiente como el catálogo inicial.

En las entidades de seguridad de Azure AD, la sintaxis de CREATE USER requiere:

  • UserPrincipalName del objeto Azure AD para los usuarios de Azure AD.

    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
    • CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
  • No se admite que los usuarios y las entidades de servicio de Azure AD (aplicaciones de Azure AD) que forman parte de más de 2048 grupos de seguridad de Azure AD inicien sesión en la base de datos en SQL Database, Instancia administrada o Azure Synapse.

  • DisplayName del objeto Azure AD para los grupos de Azure AD y las aplicaciones de Azure AD. Si tuviera el grupo de seguridad Enfermeras, utilizaría:

    • CREATE USER [Nurses] FROM EXTERNAL PROVIDER;

Para más información, consulte Usar la autenticación de Azure Active Directory para autenticación con SQL.

WITH PASSWORD = 'password'

Se aplica a: SQL Server 2012 (11.x) y versiones posteriores, SQL Database

Solo se puede usar en una base de datos independiente. Especifica la contraseña del usuario que se está creando. A partir de SQL Server 2012 (11.x), la información de la contraseña almacenada se calcula con las funciones SHA-512 de la contraseña salada.

WITHOUT LOGIN

Especifica que el usuario no se debe asignar a ningún inicio de sesión existente.

CERTIFICATE cert_name

Se aplica a: SQL Server 2008 y versiones posteriores, SQL Database

Especifica el certificado del usuario de la base de datos que se crea.

ASYMMETRIC KEY asym_key_name

Se aplica a: SQL Server 2008 y versiones posteriores, SQL Database

Especifica la clave asimétrica del usuario de la base de datos que se crea.

DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language salias> }

Se aplica a: SQL Server 2012 (11.x) y versiones posteriores, SQL Database

Especifica el idioma predeterminado del nuevo usuario. Si se especifica un idioma predeterminado para el usuario y el idioma de la base de datos se cambia posteriormente, el idioma predeterminado de los usuarios se mantiene como se especificó. Si no se especifica ningún idioma predeterminado, el idioma predeterminado del usuario será el idioma predeterminado de la base de datos. Si no se especificó ningún idioma predeterminado para el usuario y el idioma predeterminado de la base de datos se cambia posteriormente, el idioma predeterminado del usuario se cambiará al nuevo idioma predeterminado de la base de datos.

Importante

DEFAULT_LANGUAGE solo se usa para un usuario de base de datos independiente.

SID = sid

Válido para : SQL Server 2012 (11.x) y versiones posteriores.

Solo se aplica a los usuarios con contraseñas (autenticación de SQL Server) en una base de datos independiente. Especifica el SID de la base de datos. Si esta opción no se selecciona, SQL Server asigna automáticamente un SID. Utilice el parámetro SID para crear usuarios en varias bases de datos que tienen la misma identidad (SID). Esto es útil para crear usuarios de varias bases de datos y preparar la conmutación por error de Always On. Para determinar el SID de un usuario, consulte sys.database_principals.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, SQL Database

Suprime las comprobaciones de metadatos criptográficos en el servidor en operaciones de copia masiva. De esta manera, el usuario puede copiar los datos de forma masiva entre tablas o bases de datos, sin descifrar los datos. El valor predeterminado es OFF.

Advertencia

Si esta opción no se utiliza adecuadamente, pueden dañarse los datos. Para obtener más información, vea Migración de datos confidenciales protegidos mediante Always Encrypted.

Observaciones

Si se omite FOR LOGIN, el nuevo usuario de base de datos se asignará al inicio de sesión de SQL Server con el mismo nombre.

El esquema predeterminado será el primer esquema donde buscará el servidor cuando resuelva los nombres de objetos de este usuario de base de datos. A menos que se especifique lo contrario, el esquema predeterminado será el propietario de los objetos creados por este usuario de base de datos.

Si el usuario tiene un esquema predeterminado, se utilizará dicho esquema. Si el usuario no tiene un esquema predeterminado pero es miembro de un grupo con un esquema predeterminado, se utilizará el esquema predeterminado del grupo. Si el usuario no tiene un esquema predeterminado y es miembro de varios grupos, el esquema predeterminado para el usuario será el del grupo de Windows con el principal_id mínimo y un esquema predeterminado establecido explícitamente. (No es posible seleccionar explícitamente uno de los esquemas predeterminados disponibles como esquema preferido). Si no se puede determinar ningún esquema predeterminado para un usuario, se utilizará el esquema dbo.

DEFAULT_SCHEMA puede establecerse antes de crear el esquema que lo señala.

No se puede especificar DEFAULT_SCHEMA cuando se está creando un usuario asignado a un certificado o una clave asimétrica.

El valor de DEFAULT_SCHEMA se omite si el usuario es un miembro del rol fijo de servidor sysadmin. Todos los miembros del rol fijo de servidor sysadmin tienen un esquema predeterminado de dbo.

La cláusula WITHOUT LOGIN crea un usuario que no se asigna a ningún inicio de sesión de SQL Server. Este usuario puede conectarse a otras bases de datos como guest. Se pueden asignar permisos a este usuario sin inicio de sesión y cuando cambie el contexto de seguridad a un usuario sin inicio de sesión, el usuario original recibe el permiso del usuario sin inicio de sesión. Vea el ejemplo D. Crear y utilizar un usuario sin inicio de sesión.

Solo los usuarios asignados a entidades de seguridad de Windows pueden contener el carácter de barra diagonal inversa ( \ ).

No se puede utilizar CREATE USER para crear un usuario guest porque el usuario guest ya existe en cada base de datos. Puede habilitar el usuario guest concediéndole el permiso CONNECT como se muestra a continuación:

GRANT CONNECT TO guest;  
GO  

Puede ver la información sobre los usuarios de bases de datos en la vista de catálogo sys.database_principals.

Una nueva extensión de sintaxis, FROM EXTERNAL PROVIDER, está disponible para la creación de inicios de sesión de Azure AD de nivel de servidor en SQL Managed Instance. Los inicios de sesión de Azure AD permiten asignar entidades de seguridad de Azure AD de nivel de base de datos a inicios de sesión de Azure AD de nivel de servidor. Para crear un usuario de Azure AD a partir de un inicio de sesión de Azure AD, use la sintaxis siguiente:

CREATE USER [AAD_principal] FROM LOGIN [Azure AD login]

Al crear el usuario en la base de datos de SQL Managed Instance, login_name se debe corresponder a un inicio de sesión existente de Azure AD, o de lo contrario la cláusula FROM EXTERNAL PROVIDER solo creará un usuario de Azure AD sin un inicio de sesión en la base de datos principal. Por ejemplo, este comando creará un usuario contenido:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER

Resumen de la sintaxis

Usuarios basados en inicios de sesión en la base de datos maestra

En la siguiente lista se muestra la posible sintaxis de los usuarios basados en inicios de sesión. No se citan las opciones de esquema predeterminadas.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FOR LOGIN SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FROM LOGIN SQLAUTHLOGIN

Usuarios que se autentican en la base de datos

En la siguiente lista se muestra la posible sintaxis de los usuarios que solo se puede usar en una base de datos independiente. Los usuarios creados no se podrán relacionar con los inicios de sesión en la base de datos maestra. No se muestran las opciones predeterminadas de esquema ni de idioma.

Importante

Esta sintaxis concede acceso a los usuarios a la base de datos, así como nuevo acceso a Motor de base de datos.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER Barry WITH PASSWORD = 'sdjklalie8rew8337!$d'

Usuarios basados en entidades de seguridad de Windows sin inicios de sesión en la base de datos maestra

En la siguiente lista se muestra la posible sintaxis para los usuarios que tienen acceso a Motor de base de datos mediante un grupo de Windows, pero que no disponen de inicio de sesión en la base de datos maestra. Esta sintaxis se puede usar en todos los tipos de bases de datos. No se muestran las opciones predeterminadas de esquema ni de idioma.

Esta sintaxis es similar a la de los usuarios basados en inicios de sesión en la base de datos maestra, pero esta categoría no dispone de inicio de sesión en dicha base de datos. El usuario debe tener acceso a Motor de base de datos mediante un inicio de sesión de grupo de Windows.

Esta sintaxis es similar a la de los usuarios de bases de datos independientes basados en las entidades de seguridad de Windows, pero esta categoría de usuario no obtiene nuevo acceso a Motor de base de datos.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]

Usuarios que no se pueden autenticar

En la siguiente lista se muestra la posible sintaxis para los usuarios que no pueden iniciar sesión en SQL Server.

  • CREATE USER RIGHTSHOLDER WITHOUT LOGIN
  • CREATE USER CERTUSER FOR CERTIFICATE SpecialCert
  • CREATE USER CERTUSER FROM CERTIFICATE SpecialCert
  • CREATE USER KEYUSER FOR ASYMMETRIC KEY SecureKey
  • CREATE USER KEYUSER FROM ASYMMETRIC KEY SecureKey

Seguridad

Si se crea un usuario, se le concede acceso a una base de datos, pero no se le concede ningún acceso automáticamente a los objetos de una base de datos. Después de crear un usuario, las acciones habituales son agregar usuarios a los roles de base de datos que tienen permiso para acceder a los objetos de base de datos, o bien conceder permisos de objeto al usuario. Para más información acerca de cómo diseñar un sistema de permisos, consulte Getting Started with Database Engine Permissions.

Consideraciones especiales para bases de datos independientes

Cuando se conecte a una base de datos independiente, si el usuario no dispone de inicio de sesión en la base de datos maestra, la cadena de conexión se debe incluir en el nombre de la base de datos independiente como el catálogo inicial. El parámetro de catálogo inicial siempre es necesario para un usuario de base de datos independiente con contraseña.

En una base de datos independiente, la creación de usuarios ayuda a separar la base de datos de la instancia de Motor de base de datos para que la base de datos se pueda mover fácilmente a otra instancia de SQL Server. Para obtener más información, vea Bases de datos independientes y Usuarios de base de datos independiente: hacer que la base de datos sea portátil. Para cambiar un usuario de base de datos de un usuario basado en un inicio de sesión de autenticación de SQL Server a un usuario de base de datos independiente con contraseña, vea sp_migrate_user_to_contained (Transact-SQL).

En una base de datos independiente, los usuarios no deben disponer de inicios de sesión en la base de datos maestra. Los administradores del Motor de base de datos deben comprender que el acceso a una base de datos independiente se puede conceder en el nivel de base de datos, en vez de en el nivel de Motor de base de datos. Para más información, vea Security Best Practices with Contained Databases.

Al usar los usuarios de la base de datos independiente de Azure SQL Database, configure el acceso con una regla de firewall de nivel de base de datos en lugar de una regla de firewall de nivel de servidor. Para obtener más información, vea sp_set_database_firewall_rule (Base de datos SQL de Azure).

Para los usuarios de base de datos independiente de SQL Database y Azure Synapse Analytics, SSMS puede admitir la autenticación multifactor. Para obtener más información, vea Compatibilidad de SSMS con Azure AD MFA con SQL Database y Azure SynapseAzure Synapse Analytics.

Permisos

Requiere el permiso ALTER ANY USER en la base de datos.

Ejemplos

A. Crear un usuario de base de datos basado en un inicio de sesión de SQL Server

En el siguiente ejemplo, primero se crea un inicio de sesión de SQL Server denominado AbolrousHazem y, a continuación, se crea un usuario de base de datos correspondiente AbolrousHazem en AdventureWorks2012.

CREATE LOGIN AbolrousHazem   
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';  

Cambie a una base de datos de usuario. Por ejemplo, en SQL Server, utilice la instrucción USE AdventureWorks2012. En Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW), debe realizar una nueva conexión con la base de datos de usuario.

CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;  
GO   

B. Crear un usuario de base de datos con un esquema predeterminado

En el siguiente ejemplo, primero se crea un inicio de sesión de servidor denominado WanidaBenshoof con una contraseña y, a continuación, se crea el usuario de base de datos Wanida correspondiente con el esquema predeterminado Marketing.

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

C. Crear un usuario de base de datos a partir de un certificado

En el siguiente ejemplo, se crea el usuario de base de datos JinghaoLiu desde el certificado CarnationProduction50.

Válido para : SQL Server 2008 y versiones posteriores.

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

D. Crear y utilizar un usuario sin inicio de sesión

En el ejemplo siguiente se crea un usuario de base de datos CustomApp que no se asigna a un inicio de sesión de SQL Server. A continuación, se concede a un usuario el permiso adventure-works\tengiz0 para suplantar al usuario de CustomApp.

USE AdventureWorks2012 ;  
CREATE USER CustomApp WITHOUT LOGIN ;  
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;  
GO   

Para usar las credenciales de CustomApp, el usuario adventure-works\tengiz0 ejecuta la siguiente instrucción.

EXECUTE AS USER = 'CustomApp' ;  
GO  

Para revertir a las credenciales de adventure-works\tengiz0, el usuario ejecuta la siguiente instrucción.

REVERT ;  
GO  

E. Crear un usuario de base de datos independiente con contraseña

En el siguiente ejemplo se crea un usuario de base de datos independiente con contraseña. Este ejemplo solo se puede ejecutar en una base de datos independiente.

Válido para : SQL Server 2012 (11.x) y versiones posteriores. Este ejemplo funciona en SQL Database si se quita DEFAULT_LANGUAGE.

USE AdventureWorks2012 ;  
GO  
CREATE USER Carlo  
WITH PASSWORD='RN92piTCh%$!~3K9844 Bl*'  
    , DEFAULT_LANGUAGE=[Brazilian]  
    , DEFAULT_SCHEMA=[dbo]  
GO   

F. Crear un usuario de base de datos independiente para un inicio de sesión de dominio

En el siguiente ejemplo se crea un usuario de base de datos independiente para un inicio de sesión denominado Fritz en un dominio denominado Contoso. Este ejemplo solo se puede ejecutar en una base de datos independiente.

Válido para : SQL Server 2012 (11.x) y versiones posteriores.

USE AdventureWorks2012 ;  
GO  
CREATE USER [Contoso\Fritz] ;  
GO   

G. Crear un usuario de base de datos independiente con un SID específico

En el siguiente ejemplo se crea un usuario de base de datos independiente y autenticado de SQL Server denominado CarmenW. Este ejemplo solo se puede ejecutar en una base de datos independiente.

Válido para : SQL Server 2012 (11.x) y versiones posteriores.

USE AdventureWorks2012 ;  
GO  
CREATE USER CarmenW WITH PASSWORD = 'a8ea v*(Rd##+'  
, SID = 0x01050000000000090300000063FF0451A9E7664BA705B10E37DDC4B7;

H. Crear un usuario para copiar los datos cifrados

En el siguiente ejemplo se crea un usuario que puede copiar datos protegidos por la característica Always Encrypted de un conjunto de tablas con las columnas cifradas a otro conjunto de tablas con columnas cifradas (en la misma base de datos o en otra diferente). Para obtener más información, vea Migración de datos confidenciales protegidos mediante Always Encrypted.

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores, SQL Database

CREATE USER [Chin]   
WITH   
      DEFAULT_SCHEMA = dbo  
    , ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON ;  

I. Creación de un usuario de Azure AD a partir de un inicio de sesión de Azure AD en SQL Managed Instance

Para crear un usuario de Azure AD a partir de un inicio de sesión de Azure AD, use la sintaxis siguiente.

Inicie sesión en la Instancia administrada con un inicio de sesión de Azure AD que tenga concedido el rol sysadmin. Lo siguiente crea un usuario de Azure AD bob@contoso.com, a partir del inicio de sesión bob@contoso.com. Este inicio de sesión se ha creado en el ejemplo CREATE LOGIN.

CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];
GO

Importante

Al crear USER a partir un inicio de sesión de Azure AD, especifique el valor de user_name igual que el de login_name de LOGIN.

Se admite la creación de un usuario de Azure AD como un grupo a partir de un inicio de sesión de Azure AD que sea un grupo.

CREATE USER [AAD group] FROM LOGIN [AAD group];
GO

También se puede crear un usuario de Azure AD a partir de un inicio de sesión de Azure AD que sea un grupo.

CREATE USER [bob@contoso.com] FROM LOGIN [AAD group];
GO

J. Creación de un usuario de Azure AD sin un inicio de sesión de AAD para la base de datos

La sintaxis siguiente se usa para crear un usuario de Azure AD bob@contoso.com en la base de datos de SQL Managed Instance (usuario contenido):

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO

Pasos siguientes

Una vez creado el usuario, considere la posibilidad de agregar el usuario a un rol de base de datos mediante la instrucción ALTER ROLE.
También puede interesarle otorgar permisos de objeto al rol para que pueda acceder a las tablas. Para obtener información general sobre el modelo de seguridad de SQL Server, vea Permisos.

Consulte también

Crear un usuario de base de datos
sys.database_principals (Transact-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Bases de datos independientes
Uso de la autenticación de Azure Active Directory con SQL Database
Introducción a los permisos de los motores de bases de datos