Compartir por


Conexión a Azure Storage con identidad administrada desde PolyBase

Se aplica a: SQL Server 2025 (17.x) y versiones posteriores

A partir de SQL Server 2025 (17.x), puede usar la identidad administrada para acceder a los siguientes recursos de Azure:

  • Azure Blob Storage (Servicio de almacenamiento de blobs de Azure)
  • Azure Data Lake

Prerrequisitos

  • SQL Server 2025 (17.x)
  • SQL Server habilitado por Azure Arc
  • Habilitar la opción de configuración del allow server scoped db credentials servidor
  • Proporcione a la identidad administrada acceso al recurso de Azure Blob Storage.

Creación de credenciales con ámbito de base de datos

Agregue una credencial con ámbito de base de datos para la identidad administrada.

  1. Permitir credenciales de base de datos con ámbito de servidor. Ejecute la consulta Transact-SQL siguiente:

    EXECUTE sp_configure 'allow server scoped db credentials', 1;
    GO
    RECONFIGURE;
    
  2. Cree una credencial con ámbito de base de datos. En este ejemplo se usa el nombre managed_id:

    CREATE DATABASE SCOPED CREDENTIAL [managed_id]
    WITH IDENTITY = 'Managed Identity';
    

Creación de un origen de datos externo

Cree el origen de datos externo con la siguiente configuración.

  • Prefijo de ubicación del conector

    • abs
  • Ruta de ubicación

    • abs://<container_name>@<storage_account_name>.blob.core.windows.net/ o
    • abs://<storage_account_name>.blob.core.windows.net/<container_name>
  • Ubicaciones admitidas por producto o servicio

    • SQL Server 2025 (17.x) habilitado por Azure Arc
    • SQL Server 2022 (16.x): espacio de nombres jerárquico compatible
  • Autenticación

    • Firma de acceso compartido (SAS) o
    • Identidad administrada

Consulta de un archivo Parquet en Azure Blob Storage

SQL Server 2025 (17.x) admite identidad administrada a través de Azure Arc. Para obtener instrucciones, consulte Identidad administrada para SQL Server habilitada por Azure Arc.

En el ejemplo siguiente se consulta un archivo Parquet en Azure Blob Storage:

EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO

CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';

CREATE EXTERNAL DATA SOURCE [my_external_data_source]
WITH (
    LOCATION = 'abs://<container>@<storage_account_name>.blob.core.windows.net/',
    CREDENTIAL = managed_id
);

Errores y soluciones

No se puede acceder a la tabla externa (error 16562)

Es posible que encuentre el error 16562 al intentar acceder a Azure Blob Storage o Azure Data Lake si faltan requisitos previos:

Msg 16562, Level 16, State 1, Line 79
External table <name> is not accessible because location does not exist or it is used by another process.

Compruebe los siguientes elementos:

  • La instancia de SQL Server está configurada correctamente para Azure Arc. Para más información, consulte Identidad administrada para SQL Server habilitada por Azure Arc.

  • Existen las entradas del Registro necesarias.

  • Compruebe que la opción de configuración del allow server scoped db credentials servidor está habilitada.

No se puede abrir el archivo (error 13822)

Es posible que encuentre el error 13822 al acceder a Azure Blob Storage o Azure Data Lake si la identidad administrada carece de permisos en la cuenta de almacenamiento o se bloquea el acceso de red al almacenamiento.

Msg 13822, Level 16, State 1, Line 9
File <file> cannot be opened because it does not exist or it is used by another process.

Compruebe los siguientes elementos:

  • ¿La identidad administrada tiene permisos para el contenedor de almacenamiento?
  • ¿La identidad administrada puede acceder al contenedor de almacenamiento fuera de SQL Server?
  • ¿El archivo está bloqueado exclusivamente?