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.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Base de datos de Azure SQL en Microsoft Fabric
La utilidad de programa de copia masiva (bcp) admite varios modelos de autenticación de Microsoft Entra ID cuando se conecta a Azure SQL Database, Azure SQL Managed Instance, SQL Database en Microsoft Fabric, Azure Synapse Analytics o SQL Server 2022 (16.x) y versiones posteriores.
Para comprobar si el bcp instalado admite la autenticación de Microsoft Entra, ejecute bcp --help y compruebe que -G aparece en la lista de argumentos disponibles.
Restricciones de plataforma
No todos los modos de autenticación están disponibles en todas las plataformas:
La autenticación interactiva de Microsoft Entra solo se admite en Windows.
La autenticación integrada de Microsoft Entra en Linux y macOS requiere Microsoft ODBC Driver 18 para SQL Server (controlador 17.6.1 o posterior si no se puede mover al controlador 18) y un entorno Kerberos configurado correctamente.
La autenticación con un archivo de token de acceso (
-P <token_file>) solo se admite en Linux y macOS.
Nombre de usuario y contraseña de Microsoft Entra
Proporcione -G junto con -U (nombre de usuario) y -P (contraseña).
En el ejemplo siguiente se exporta la tabla bcptest de la base de datos testdb en contoso.database.windows.net al archivo c:\last\data1.dat. Reemplace <password> por una contraseña válida.
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
En el ejemplo siguiente se importan los mismos datos:
bcp bcptest in "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
Microsoft Entra integrado
Proporcione -G sin -U o -P. La cuenta actual de Windows (o la identidad Kerberos en Linux/macOS) debe estar federada con Microsoft Entra ID. En los ejemplos siguientes, reemplace por <server> el nombre del servidor.
Exportar:
bcp bcptest out "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Importar:
bcp bcptest in "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Microsoft Entra Managed Service Identity (Identidad de Servicio Gestionado)
Autentíquese como una identidad administrada asignada por el sistema o asignada por el usuario a través de un DSN configurado. El mismo enfoque funciona tanto para bcp in como para bcp out.
Importante
bcp está estrechamente acoplado a su controlador. La versión principal de bcp debe coincidir con la versión principal del controlador con la que se crea el DSN. Para determinar la versión de bcp , ejecute bcp -v.
Configurar un DSN a través del Administrador de Orígenes de Datos ODBC:
- Presione la tecla Windows en el teclado.
- Escriba
ODBCy seleccione la versión adecuada del administrador de orígenes de datos ODBC. - Seleccione la pestaña DSN de usuario o DSN del sistema .
- Seleccione Agregar y siga las indicaciones.
- Cuando se le solicite un tipo de autenticación, seleccione Autenticación de Azure Managed Service Identity.
- Para una identidad administrada asignada por el usuario, pegue la
Object (principal) IDde la identidad en el cuadro ID de inicio de sesión en la pestaña de autenticación. - Siga las indicaciones para terminar de configurar el DSN.
Para ver un tutorial completo, incluidas las capturas de pantalla, consulte Creación y edición de DSN en la UI.
Use la -D marca para indicar que el valor pasado a -S es un DSN. Los -D y -S interruptores pueden aparecer en cualquier orden en la línea de comandos.
bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
Token de acceso de Microsoft Entra ID
Se aplica solo a: Linux y macOS. Windows no es compatible.
bcp 17.8 y versiones posteriores en Linux y macOS pueden autenticarse con un token de acceso. En los ejemplos siguientes se usa la CLI de Azure para recuperar el token y escribirlo en un archivo temporal seguro.
Importante
El archivo de token debe ser UTF-16LE sin un BOM. Restrinja los permisos de archivo y elimine el archivo cuando ya no sea necesario, como se muestra en los ejemplos siguientes.
Identidad administrada asignada por el sistema
Reemplace por <server> el nombre del servidor.
Inicie sesión con la identidad administrada:
az login --identityRecupere el token, escríbalo en un archivo temporal seguro y ejecute bcp:
# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Identidad administrada asignada por el usuario
Inicie sesión con la identidad administrada asignada por el usuario. Reemplace
<client_id>por un valor válido para su entorno.az login --identity --username <client_id>Recupere el token, escríbalo en un archivo temporal seguro y ejecute bcp. Reemplace
<server>por un valor válido para su entorno.# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Microsoft Entra Interactivo
Se aplica a: Solo Windows. No se admiten Linux ni macOS.
La autenticación interactiva de Microsoft Entra usa un cuadro de diálogo para autenticarse y admite la autenticación multifactor (MFA). La autenticación interactiva requiere bcpversión 15.0.1000.34 o posterior, y ODBC Driver 18 for SQL Server (o driver 17.2 o posterior).
Proporcione solo -G con -U (nombre de usuario). No incluya -P.
bcp solicita la contraseña (o para las cuentas con MFA habilitada, completa el flujo de MFA configurado).
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com
Para un usuario de Microsoft Entra que sea una cuenta de Windows de un dominio federado, incluya el dominio en el nombre de usuario (por ejemplo, joe@contoso.com):
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U joe@contoso.com
Si los usuarios invitados de un inquilino de Microsoft Entra forman parte de un grupo que tiene permisos de base de datos en Azure SQL Database, use el alias de usuario invitado (por ejemplo, keith0@adventure-works.com).
Contenido relacionado
- Utilidad bcp
- Descarga e instalación de la utilidad bcp
- Uso de la utilidad bcp
- Autenticación de Microsoft Entra para Azure SQL
- Autenticación en base de datos SQL en Microsoft Fabric
Obtener ayuda
- Ideas para SQL: ¿Tiene sugerencias para mejorar SQL Server?
- Preguntas y respuestas de Microsoft (SQL Server)
- DBA Stack Exchange (etiqueta sql-server): Hacer preguntas sobre SQL Server
- Stack Overflow (etiqueta sql-server): Respuestas a preguntas de desarrollo de SQL
- Información y términos de licencia de Microsoft SQL Server
- Opciones de soporte técnico para usuarios profesionales
- Comentarios y ayuda adicional sobre SQL Server
Contribuya a la documentación de SQL
¿Sabía que puede editar el contenido de SQL usted mismo? Si lo hace, no solo contribuirá a mejorar la documentación, sino que también se le reconocerá como colaborador de la página.
Para obtener más información, consulte Editar documentación de Microsoft Learn.