CREATE CREDENTIAL (Transact-SQL)

Sintaxis

CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
        [ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]

Argumentos

  • credential_name
    Especifica el nombre de la credencial que se va a crear. credential_name no puede comenzar por el signo de número (#). Las credenciales del sistema comienzan por ##.

  • IDENTITY ='identity_name'
    Especifica el nombre de la cuenta que se utilizará para conectarse fuera del servidor.

  • SECRET ='secret'
    Especifica el secreto necesario para la autenticación de salida. Esta cláusula es opcional.

  • FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name
    Especifica el nombre de un Proveedor de administración de claves de la empresa (EKM). Para obtener más información sobre la administración de claves, vea Descripción de la Administración extensible de claves (EKM).

Comentarios

Una credencial es un registro que contiene la información de autenticación necesaria para conectarse a un recurso fuera de SQL Server. La mayoría de las credenciales incluyen un usuario y una contraseña de Windows.

Si IDENTITY es un usuario de Windows, el secreto puede ser la contraseña. El secreto se cifra usando la clave maestra de servicio. Si se vuelve a generar la clave maestra de servicio, el secreto se vuelve a cifrar con la nueva clave maestra de servicio.

Una vez creada una credencial, puede asignarla a un inicio de sesión de SQL Server mediante CREATE LOGIN o ALTER LOGIN. Un inicio de sesión de SQL Server solamente se puede asignar a una credencial, pero una credencial puede asignarse a varios inicios de sesión de SQL Server. Para obtener más información, vea Credenciales (motor de base de datos).

Puede ver la información acerca de las credenciales en la vista de catálogo sys.credentials.

Si no hay ninguna credencial de inicio de sesión asignada para el proveedor, se utiliza la credencial asignada a la cuenta de servicio de SQL Server.

Un inicio de sesión puede tener asignadas varias credenciales, siempre y cuando se utilicen con proveedores distintos. Sólo debe haber una credencial asignada por cada proveedor y por cada inicio de sesión. La misma credencial puede estar asignada a otros inicios de sesión.

Permisos

Requiere el permiso ALTER ANY CREDENTIAL.

Ejemplos

En el ejemplo siguiente se crea la credencial denominada AlterEgo. La credencial contiene el usuario de Windows Mary5 y una contraseña.

CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5', 
    SECRET = '<EnterStrongPasswordHere>';
GO

En el ejemplo siguiente se utiliza una cuenta creada previamente denominada User1OnEKM en un módulo EKM a través de las herramientas de administración de EKM, con un tipo de cuenta y una contraseña básicos. La cuenta sysadmin del servidor crea una credencial que se utiliza para conectar a la cuenta de EKM y la asigna a la cuenta User1 de SQL Server:

CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM'
, SECRET='<EnterStrongPasswordHere>'
  FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
/* Modify the login to assign a non cryptographic provider credential */ 
ALTER LOGIN User1
WITH CREDENTIAL = AlterEgo;
GO