CREATE USER (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Nota:

Aunque Microsoft Entra ID es el nuevo nombre de Azure Active Directory (Azure AD), para evitar interrumpir los entornos existentes, Azure AD sigue estando en algunos elementos codificados de forma rígida como campos de interfaz de usuario, proveedores de conexiones, códigos de error y cmdlets. En este artículo, los dos nombres son intercambiables.

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;
  • Usuario basado en un inicio de sesión de Microsoft Entra. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

    Nota:

    Las entidades de seguridad (inicios de sesión) de Microsoft Entra server se encuentran actualmente en versión preliminar pública para Azure SQL Database.

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 Microsoft Entra. 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 o SQL Database.

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

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> [ ,... ]   
    | Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    }  
  
 [ ; ]  
  
-- 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 Microsoft Entra 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 ] ] 
-- Syntax for Azure Synapse Analytics  
  
CREATE USER user_name   
    [ { { FOR | FROM } { LOGIN login_name }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

CREATE USER Microsoft_Entra_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 (12.x) 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), un inicio de sesión mediante la autenticación de SQL Server o un inicio de sesión mediante una entidad de seguridad de Microsoft Entra (usuario, grupo o aplicación). 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 el 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. Al crear un usuario desde 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.

"Microsoft_Entra_principal"

Se aplica a: SQL Database, SQL Managed Instance, Azure Synapse Analytics.

Especifica la entidad de seguridad de Microsoft Entra para la que se va a crear el usuario de la base de datos. El Microsoft_Entra_principal puede ser un usuario de Microsoft Entra, un grupo de Microsoft Entra o una aplicación de Microsoft Entra. (Los usuarios de Microsoft Entra no pueden tener inicios de sesión de autenticación de Windows en SQL Database; solo los usuarios de la base de datos). El cadena de conexión debe especificar la base de datos independiente como catálogo inicial.

Para las entidades de seguridad de Microsoft Entra, la sintaxis CREATE USER requiere:

  • UserPrincipalName del objeto Microsoft Entra para usuarios de Microsoft Entra.

    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
    • CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
  • Las entidades de seguridad (inicios de sesión) de Microsoft Entra server presentan la creación de usuarios asignados a inicios de sesión de Microsoft Entra en la base de datos maestra virtual. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

  • No se admiten usuarios y entidades de servicio (aplicaciones) de Microsoft Entra que sean miembros de más de 2048 grupos de seguridad de Microsoft Entra para iniciar sesión en bases de datos en Azure SQL Database, Azure SQL Instancia administrada o Azure Synapse.

  • DisplayName del objeto Microsoft Entra para grupos de Microsoft Entra y Aplicaciones de Microsoft Entra. Si tuviera el grupo de seguridad Enfermeras, utilizaría:

    • CREATE USER [Nurses] FROM EXTERNAL PROVIDER;

Para obtener más información, consulte Conexión a SQL Database mediante la autenticación de Microsoft Entra.

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 (10.0.x) y versiones posteriores, y 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 (10.0.x) y versiones posteriores, y SQL Database.

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

DEFAULT_LANGUAGE = { NONE | <lcid> | <nombre de idioma> | <alias de idioma> }

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.

FROM EXTERNAL PROVIDER

Se aplica a: SQL Database y Azure SQL Instancia administrada.

Especifica que el usuario es para la autenticación de Microsoft Entra.

WITH OBJECT_ID = 'objectid'

Se aplica a: SQL Database y Azure SQL Instancia administrada. Especifica el identificador de objeto entra de Microsoft. OBJECT_ID Si se especifica , el user_name puede ser un alias definido por el usuario formado a partir del nombre para mostrar principal original con un sufijo anexado. El user_name debe ser un nombre único en la sys.database_principals vista y cumplir todas las demás sysname limitaciones. Para obtener más información sobre el uso de la WITH OBJECT_ID opción, consulte Inicios de sesión y usuarios de Microsoft Entra con nombres para mostrar no únicos.

Nota:

Si el nombre para mostrar de la entidad de servicio no es un duplicado, se debe usar la instrucción CREATE LOGIN o CREATE USER. La extensión WITH OBJECT_ID está en versión preliminar pública y es un elemento de reparación de solución de problemas implementado para su uso con entidades de servicio que no son únicas. No se recomienda usarlo con una entidad de servicio única. El uso de la extensión WITH OBJECT_ID para una entidad de servicio sin agregar un sufijo se ejecutará correctamente, pero no será evidente para qué entidad de servicio se creó el inicio de sesión o el usuario. Se recomienda crear un alias mediante un sufijo para identificar de forma única la entidad de servicio. La extensión WITH OBJECT_ID no se admite para SQL Server.

Comentarios

Si FOR LOGIN se omite, 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. Los permisos se pueden asignar a este usuario sin un inicio de sesión y cuando se cambia el contexto de seguridad a un usuario sin un inicio de sesión, los usuarios originales reciben los permisos del usuario sin un 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.

Use la extensión FROM EXTERNAL PROVIDER de sintaxis para crear inicios de sesión de Microsoft Entra de nivel de servidor en Azure SQL Database y Azure SQL Instancia administrada. Los inicios de sesión de Microsoft Entra permiten asignar entidades de seguridad de Microsoft Entra de nivel de base de datos a inicios de sesión de Microsoft Entra de nivel de servidor. Para crear un usuario de Microsoft Entra a partir de un inicio de sesión de Microsoft Entra, use la sintaxis siguiente:

CREATE USER [Microsoft_Entra_principal] FROM LOGIN [Microsoft Entra login]

Al crear el usuario en la base de datos de Azure SQL, el login_name debe corresponder a un inicio de sesión de Microsoft Entra existente o, de lo contrario, el uso de la cláusula FROM EXTERNAL PROVIDER solo creará un usuario de Microsoft Entra sin un inicio de sesión en la base de datos maestra. 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 lista siguiente se muestra la sintaxis posible 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 (Azure SQL Database).

Para los usuarios de base de datos independiente de SQL Server 2022 (16.x), SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics, SSMS puede admitir la autenticación multifactor. Para más información, consulte Uso de la autenticación multifactor de Microsoft Entra.

Permisos

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

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso CREATE 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 AdventureWorks2022.

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 AdventureWorks2022. 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 AdventureWorks2022;  
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.

Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores.

USE AdventureWorks2022;  
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 AdventureWorks2022;  
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 AdventureWorks2022;  
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 AdventureWorks2022;  
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 AdventureWorks2022;  
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 Microsoft Entra a partir de un inicio de sesión de Microsoft Entra en Azure SQL

Para crear un usuario de Microsoft Entra a partir del inicio de sesión de Microsoft Entra, use la sintaxis siguiente.

Inicie sesión en el servidor lógico en Azure o sql Instancia administrada mediante un inicio de sesión de Microsoft Entra concedido el sysadmin rol en SQL Instancia administrada o loginmanager rol en SQL Database. A continuación se crea un usuario bob@contoso.comde Microsoft Entra 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 un USUARIO a partir de un inicio de sesión de Microsoft Entra, especifique el user_name que el mismo login_name desde LOGIN.

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

CREATE USER [MS Entra group] FROM LOGIN [MS Entra group];

GO

También puede crear un usuario de Microsoft Entra a partir de un inicio de sesión de Microsoft Entra que sea un grupo.

CREATE USER [bob@contoso.com] FROM LOGIN [MS Entra group];

GO

J. Creación de un usuario de base de datos independiente a partir de una entidad de seguridad de Microsoft Entra

La sintaxis siguiente crea un usuario bob@contoso.comde Microsoft Entra , en una base de datos sin un inicio de sesión asociado en master:

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.

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
Conexión a SQL Database mediante la autenticación de Microsoft Entra
Introducción a los permisos de los motores de bases de datos