CREATE USER (Transact-SQL)

Agrega un usuario a la base de datos actual.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • user_name
    Especifica el nombre por el que se identifica al usuario en esta base de datos. user_name es de tipo sysname. Puede tener una longitud máxima de 128 caracteres.
  • LOGIN login_name
    Especifica el inicio de sesión de SQL Server del usuario de base de datos que se va a crear. login_name debe ser un inicio de sesión válido en el servidor. Cuando este inicio de sesión de SQL Server se introduzca en la base de datos adquirirá el nombre y el Id. del usuario de la base de datos que se va a crear.
  • CERTIFICATE cert_name
    Especifica el certificado del usuario de la base de datos que se va a crear.
  • ASYMMETRIC KEY asym_key_name
    Especifica la clave asimétrica del usuario de la base de datos que se va a crear.
  • 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.
  • WITHOUT LOGIN
    Especifica que el usuario no se debe asignar a un inicio de sesión existente.

Notas

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.

Si DEFAULT_SCHEMA se deja sin definir, el usuario de base de datos utilizará dbo como su esquema predeterminado. DEFAULT_SCHEMA puede establecerse en un esquema que no existe actualmente en la base de datos. 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 grupo de Windows, un certificado o una clave asimétrica.

ms173463.note(es-es,SQL.90).gifImportante:
El valor de DEFAULT_SCHEMA se omite si el usuario es un miembro de la función fija del servidor sysadmin. Todos los miembros de la función fija del servidor sysadmin tienen un esquema predeterminado dbo.

La cláusula WITHOUT LOGIN crea un usuario que no se asigna a un inicio de sesión de SQL Server. Este usuario puede conectarse a otras bases de datos como guest.

Los nombres de usuarios que se asignan a inicios de sesión de SQL Server, certificados o claves asimétricas no pueden contener el carácter 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 permiso CONNECT como se muestra a continuación:

GRANT CONNECT TO guest;
GO

Puede ver la información acerca de los usuarios de la base de datos en la vista de catálogo sys.database_principals (Transact-SQL).

ms173463.Caution(es-es,SQL.90).gifAdvertencia:
En SQL Server 2005 el comportamiento de los esquemas es distinto al de las versiones anteriores de SQL Server. Si en el código se supone que los esquemas son equivalentes a usuarios de base de datos, los resultados obtenidos podrían ser incorrectos. Las vistas de catálogo antiguas, incluida sysobjects, no deben usarse en una base de datos en la que se ha usado alguna de las siguientes instrucciones DDL: 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. En una base de datos en la que se ha usado alguna de estas instrucciones, deben usarse las nuevas vistas de catálogo. En las nuevas vistas de catálogo se tiene en cuenta la separación de entidades de seguridad y esquemas que se establece en SQL Server 2005. Para obtener más información sobre las vistas de catálogo, vea Vistas de catálogo (Transact-SQL).

Permisos

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

Ejemplos

A. Crear un usuario de base de datos

En el siguiente ejemplo, primero se crea un inicio de sesión de servidor denominado AbolrousHazem con una contraseña y, a continuación, se crea el usuario de base de datos AbolrousHazem correspondiente en AdventureWorks.

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
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 AdventureWorks;
CREATE USER Wanida FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
GO

C. Crear un usuario de base de datos desde un certificado

En el siguiente ejemplo, se crea el usuario de base de datos JinghaoLiu desde el certificado 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 

Vea también

Referencia

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

Otros recursos

Separación de esquemas de usuario

Ayuda e información

Obtener ayuda sobre SQL Server 2005