Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Analítica (PDW)
Base de datos SQL en Microsoft Fabric
Crea una credencial de base de datos. Una credencial de base de datos no está asignada a un usuario de base de datos o de inicio de sesión de servidor. La base de datos utiliza la credencial para acceder a la ubicación externa siempre que la base de datos realice una operación que requiera acceso.
Convenciones de sintaxis de Transact-SQL
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
Especifica el nombre de la credencial con ámbito de base de datos que se va a crear.
credential_name no puede comenzar con el signo de número (#). Las credenciales del sistema comienzan con ##. La longitud máxima de credential_name es de 128 caracteres.
IDENTITY = "identity_name"
Especifica el nombre de la cuenta que se utilizará para conectarse fuera del servidor.
- Para importar un archivo desde Azure Blob Storage o Azure Data Lake Storage usando una clave compartida, el nombre de identidad debe ser
SHARED ACCESS SIGNATURE. Para saber más sobre las firmas de acceso compartido, vea Uso de firmas de acceso compartido (SAS). Use soloIDENTITY = SHARED ACCESS SIGNATUREpara una firma de acceso compartido. - Para importar un archivo desde Azure Blob Storage usando una identidad administrada, el nombre de identidad debe ser
MANAGED IDENTITY. - Cuando se usa Kerberos (Windows Active Directory o MIT KDC) no se usa el nombre de dominio en el
IDENTITYargumento . Solamente debe usar el nombre de la cuenta. - En una instancia de SQL Server, si se crea una credencial con ámbito de base de datos con una clave de acceso de almacenamiento usada como
SECRET,IDENTITYse omite. -
WITH IDENTITYno es necesario si el contenedor de Azure Blob Storage está habilitado para el acceso anónimo. Para obtener un ejemplo de consulta de Azure Blob Storage conOPENROWSET BULK, consulte Importación en una tabla desde un archivo almacenado en Azure Blob Storage. - En SQL Server 2022 (16.x) y versiones posteriores, el conector de REST-API reemplaza HADOOP. Para Azure Blob Storage y Azure Data Lake Gen 2, el único método de autenticación admitido es la firma de acceso compartido. Para obtener más información, vea CREATE EXTERNAL DATA SOURCE (Transact-SQL).
- En SQL Server 2019 (15.x), el único origen de datos externo de PolyBase que admite la autenticación Kerberos es Hadoop. Todos los demás orígenes de datos externos (SQL Server, Oracle, Teradata, MongoDB y ODBC genérico) solo admiten la autenticación básica.
- Los grupos de SQL de Azure Synapse Analytics incluyen las notas siguientes:
- Para cargar datos en Azure Synapse Analytics, se puede usar cualquier valor válido para
IDENTITY. - En un grupo de SQL sin servidor de Azure Synapse Analytics, las credenciales con ámbito de base de datos pueden especificar una identidad administrada del área de trabajo, un nombre de entidad de servicio o un token de firma de acceso compartido (SAS). El acceso a través de una identidad de usuario, habilitada por la autenticación de paso a través de Microsoft Entra, también es posible con una credencial con ámbito de base de datos, al igual que el acceso anónimo al almacenamiento disponible públicamente. Para más información, consulte Tipos de autorización de almacenamiento admitidos.
- En un grupo de SQL dedicado de Azure Synapse Analytics, las credenciales con ámbito de base de datos pueden especificar el token de firma de acceso compartido (SAS), la identidad de aplicación personalizada, la identidad administrada del área de trabajo o la clave de acceso de almacenamiento.
- Para cargar datos en Azure Synapse Analytics, se puede usar cualquier valor válido para
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| Firma de acceso compartido (SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 y versiones posteriores, Azure SQL Managed Instance, Azure Synapse Analytics, Azure SQL Database | |
| Identidad administrada | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, Azure SQL Managed Instance, SQL Server 2025 con Azure Arc | Para habilitar Azure Arc, consulte Identidad gestionada para SQL Server habilitada por Azure Arc |
| Autenticación de paso a través de Microsoft Entra a través de la identidad de usuario | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
|
En Azure Synapse, consulte Microsoft Entra Connect: Autenticación de paso a través |
| Autenticación básica de clave de acceso S3 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 y versiones posteriores | |
| Orígenes de datos ODBC o Kerberos (MIT KDC) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 y versiones posteriores |
* En la base de datos SQL de Microsoft Fabric, si no se especifica ninguna credencial con alcance de base de datos, el método de autenticación se asigna por defecto a 'IDENTIDAD USUARIO' y utiliza el usuario de usuario Entra ID como contexto.
SECRETO = 'secreto'
Especifica el secreto necesario para la autenticación de salida.
SECRET es necesario para importar un archivo del almacenamiento de blobs de Azure. Para cargar desde Azure Blob Storage a Azure Synapse Analytics o Almacenamiento de datos paralelos, el secreto debe ser la clave de Azure Storage.
Warning
El valor de clave SAS puede comenzar con un signo de interrogación (?). Cuando use la clave SAS, quite el inicial ?.
Remarks
Una credencial con ámbito de base de datos 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.
Para proteger la información confidencial dentro de la credencial con ámbito de base de datos, se requiere una clave maestra de base de datos (DMK). DmK es una clave simétrica que cifra el secreto en la credencial con ámbito de base de datos. La base de datos debe tener una DMK antes de que se puedan crear credenciales con ámbito de base de datos. Una DMK debe cifrarse con una contraseña segura. Azure SQL Database creará una DMK con una contraseña segura y seleccionada aleatoriamente como parte de la creación de la credencial con ámbito de base de datos o como parte de la creación de una auditoría de servidor. Los usuarios no pueden crear la DMK en una base de datos lógica master . La contraseña de clave maestra es desconocida para Microsoft y no se puede detectar después de la creación. Por este motivo, se recomienda crear una DMK antes de crear una credencial con ámbito de base de datos. Para obtener más información, vea CREATE MASTER KEY (Transact-SQL).
Si IDENTITY es un usuario de Windows, el secreto puede ser la contraseña. El secreto se cifra mediante la clave maestra de servicio (SMK). Si se vuelve a generar el SMK, el secreto se vuelve a cifrar mediante el nuevo SMK.
Al conceder permisos para las firmas de acceso compartido (SAS) para su uso con una tabla externa de PolyBase, seleccione Container y Object como tipos de recursos permitidos. Si no se concede, es posible que reciba el error 16535 o 16561 al intentar acceder a la tabla externa.
Encontrará información sobre las credenciales de ámbito de base de datos en la vista de catálogo sys.database_scoped_credentials.
Estas son algunas aplicaciones de credenciales con ámbito de base de datos:
SQL Server usa una credencial con ámbito de base de datos para acceder a la instancia de Azure Blob Storage no pública o a los clústeres de Hadoop protegidos con Kerberos mediante PolyBase. Para obtener más información, consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL).
Azure Synapse Analytics usa una credencial con ámbito de base de datos para acceder a la instancia de Azure Blob Storage no pública con PolyBase. Para obtener más información, consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL). Para más información sobre la autenticación de almacenamiento de Azure Synapse, consulte Uso de tablas externas con Synapse SQL.
SQL Database usa credenciales con ámbito de base de datos para su característica de consulta elástica. Se trata de la capacidad de hacer consultas en varias particiones de base de datos.
SQL Database usa credenciales con ámbito de base de datos para escribir archivos de eventos extendidos en Azure Blob Storage.
SQL Database usa credenciales con ámbito de base de datos para grupos elásticos. Para obtener más información, vea Tame explosive growth with elastic databases (Control del crecimiento explosivo con bases de datos elásticas).
BULK INSERT (Transact-SQL) y OPENROWSET (Transact-SQL) usan credenciales de ámbito de base de datos para acceder a los datos de Azure Blob Storage. Para obtener más información, consulte Ejemplos de acceso masivo a datos en Azure Blob Storage.
Use credenciales con ámbito de base de datos con PolyBase y Azure SQL Instancia administrada características de virtualización de datos.
Para
BACKUP TO URLyRESTORE FROM URL, use una credencial de nivel de servidor mediante CREATE CREDENTIAL (Transact-SQL) en su lugar.
Permissions
Necesita el permiso CONTROL en la base de datos.
Examples
A. Creación de una credencial con ámbito de base de datos para la aplicación
En el ejemplo siguiente se crea una credencial con ámbito de base de datos denominada AppCred. Esta credencial contiene el usuario de Windows Mary5 y una contraseña.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL AppCred WITH IDENTITY = 'Mary5',
SECRET = '<EnterStrongPasswordHere>';
B. Creación de una credencial con ámbito de base de datos para una firma de acceso compartido
En el ejemplo siguiente se crea una credencial con ámbito de base de datos que se puede usar para crear un origen de datos externo, que puede realizar operaciones masivas, como BULK INSERT (Transact-SQL) y OPENROWSET (Transact-SQL).
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';
C. Creación de una credencial con ámbito de base de datos para la conectividad de PolyBase con Azure Data Lake Store
En el ejemplo siguiente se genera una credencial con ámbito de base de datos que se puede usar para crear un origen de datos externo, que PolyBase puede usar en Azure Synapse Analytics.
Azure Data Lake Store usa una aplicación de Microsoft Entra para la autenticación de servicio a servicio.
Cree una aplicación de Microsoft Entra y documente los client_id, OAuth_2.0_Token_EndPoint y Key antes de intentar crear una credencial con ámbito de base de datos.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH
IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>';
D. Creación de una credencial con ámbito de base de datos mediante identidad administrada
Aplica a: SQL Server 2025 (17.x)
SQL Server 2025 (17.x) presenta compatibilidad con identidades administradas de Microsoft Entra. Para obtener información sobre cómo usar una identidad administrada con SQL Server habilitado por Azure Arc, consulte Identidad administrada.
SP_CONFIGURE 'allow server scoped db credentials',1;
RECONFIGURE;
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
#. Crear una credencial con alcance de base de datos usando Microsoft Entra ID
Aplica a:Azure SQL Database, SQL database en Microsoft Fabric
En Azure SQL Database y SQL Database en Microsoft Fabric, es posible usar tu propio inicio de sesión de Entra ID para autenticar una fuente de datos externa.
En la base de datos SQL en Microsoft Fabric, si no se especifica ninguna credencial con alcance de base de datos, el método de autenticación se asigna USER IDENTITY por defecto y utiliza el usuario de usuario de Entra ID como contexto.
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';
Contenido relacionado
- Credenciales (motor de base de datos)
- ALTER DATABASE SCOPED CREDENTIAL (Transact-SQL) - Credencial con alcance a base de datos (Transact-SQL)
- DESCARTAR CREDENCIAL CON ALCANCE DE BASE DE DATOS (Transact-SQL)
- sys.database_scoped_credentials
- CREAR CREDENCIAL (Transact-SQL)
- sys.credentials (Transact-SQL)