Inserción masiva a través de la red


13

¿Alguien puede ayudarme con esto?

BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
    FIELDTERMINATOR = ' ',
    rowterminator = '\n',
    tablock
)

El error muestra, no se pudo abrir:

No se pudo insertar en masa porque el archivo '\ SERVERNAME \ FOLDERNAME \ textFile.txt' no se pudo abrir. Código de error del sistema operativo 5 (acceso denegado).

La ruta está en otra computadora en la red.


8
¿La cuenta con la que se ejecuta SQL Server tiene permiso de acceso '\\COMPUTER01\FOLDER01\TextFile.txt'? Tenga en cuenta que la cuenta generalmente será diferente de su cuenta.
Damien_The_Unbeliever

3
¿También puede agregar el error exacto que obtiene?
ypercubeᵀᴹ

además de @Damien_The_Unbeliever: "Para especificar un archivo de datos compartidos, use su nombre de convención de nomenclatura universal (UNC), que toma la forma general, \\ Servername \ Sharename \ Path \ Filename"
JoseTeixeira

@ypercube: no se pudo insertar en masa porque el archivo '\\ SERVERNAME \ FOLDERNAME \ textFile.txt' no se pudo abrir. Código de error del sistema operativo 5 (acceso denegado). gracias señor
Jonas Ivy V. Imperial

Tengo el mismo problema al usar el mismo dominio y dominio cruzado (código de error del sistema operativo 5 (acceso denegado)). Curiosamente, si uso XP_CMDSHELL para probar si el archivo existe o incluso puedo mover el archivo, pero la inserción masiva arroja acceso denegado. La cuenta de servicio sql y mi cuenta de Windows tienen permisos para la carpeta.

Respuestas:


14

Voy a dar un salto de fe y asumir que te conectas a SQL Server usando la autenticación de Windows. En tal caso, tiene un doble salto Kerberos: un salto es su aplicación cliente que se conecta al servidor SQL, un segundo salto es el servidor SQL que se conecta al control remoto \\COMPUTER01. Tal doble salto cae bajo las restricciones de la Delegación restringida y terminas accediendo al recurso compartido como Acceso anónimo y, por lo tanto, Acceso denegado.

Para solucionar el problema, debe habilitar la delegación restringida para la cuenta de servicio de SQL Server. Este blog: Cómo: la inserción masiva de SQL Server con delegación restringida (acceso denegado) tiene un ejemplo de cómo hacerlo, y realmente espero que el paso sobre cómo 'habilitar la delegación sin restricciones' sea solo un error tipográfico ya que la delegación sin restricciones es Simplemente malvado.

En el caso de que saltara el arma y esté iniciando sesión en SQL Server usando la autenticación de SQL, necesitará crear una credencial para su inicio de sesión de SQL y usarla para acceder a los recursos de la red. Ver CREATE CREDENTIAL.


1

SQL Server intentó abrir el archivo, el servidor de archivos le dijo "Acceso denegado" porque la cuenta con la que se ejecuta SQL Server no tiene permiso para abrir el archivo. Cambie la configuración de seguridad en el archivo en consecuencia y funcionará.


1

Ejecutaría el script bajo un inicio de sesión SQL (con permiso de bulkadmin) y permitiría que el permiso en la carpeta de red se autentique con la cuenta de servicio SQL o la cuenta del Agente SQL Server.


-2

Te diré lo que funciona para mí cada vez que reciba este mensaje. Abro el archivo csv como un texto en un bloc de notas y elimino todas las líneas de espacio en el archivo, no puedo ver esas líneas en blanco en el archivo de Excel. Por lo general, es solo la última línea que parece aparecer a pesar de que está vacía


¿Estás seguro de que es el mismo error?
dezso

Esto no tiene nada que ver con los errores de acceso denegado. Esto solo corrige errores de formato de archivo.
Julien Vavasseur
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.