¿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.
sql-server
bulk-insert
Jonas Ivy V. Imperial
fuente
fuente
'\\COMPUTER01\FOLDER01\TextFile.txt'
? Tenga en cuenta que la cuenta generalmente será diferente de su cuenta.Respuestas:
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
.fuente
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á.
fuente
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.
fuente
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
fuente