sql-server - requerimientos - sql server 2017
No se puede cargar a granel. Código de error del sistema operativo 5(Acceso denegado). (9)
Por alguna extraña razón, tengo problemas para ejecutar una inserción masiva.
BULK INSERT customer_stg
FROM ''C:/Users/Michael/workspace/pydb/data/andrew.out.txt''
WITH
(
FIRSTROW=0,
FIELDTERMINATOR=''/t'',
ROWTERMINATOR=''/n''
)
Estoy seguro de que, después de leer this , configuré mi rol de usuario correctamente, ya que dice ...
Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la instrucción BULK INSERT.
He configurado correctamente las Login Properties
para la autenticación de Windows (como se ve a continuación) ... para otorgar permisos de todo el bulkadmin
en bulkadmin
autenticación de Windows http://iforce.co.nz/i/daaqcasj.vo1.png
Y el comando EXEC sp_helpsrvrolemember ''bulkadmin''
me dice que la información anterior fue exitosa y que el usuario actual Michael-PC/Michael
tiene permisos de bulkadmin
.
bulkadmin http://iforce.co.nz/i/bou0uklk.wdj.png
Pero a pesar de que he configurado todo correctamente hasta donde sé, todavía estoy recibiendo el error. ejecutando la inserción masiva directamente desde SQL Server Management Studio.
Msg 4861, Nivel 16, Estado 1, Línea 2
No se puede realizar una carga masiva porque no se pudo abrir el archivo "C: / Users / Michael / workspace / pydb / data / andrew.out.txt". Código de error del sistema operativo 5 (acceso denegado).
lo cual no tiene sentido porque, aparentemente, bulkadmins
puede ejecutar la declaración, ¿tengo la intención de reconfigurar cómo funciona el bulkadmin
? (Estoy tan perdido). ¿Alguna idea de cómo arreglarlo?
- Vaya a start run => services.msc => SQL SERVER (MSSQLSERVER) detiene el servicio
- Haga clic derecho en el SERVIDOR SQL (MSSQLSERVER) => propiedades => pestaña de inicio de sesión => Cuenta del sistema local => Aceptar
- Reinicie el SQL Server Management Studio.
1) Abra SQL 2) En el Administrador de tareas, puede verificar qué cuenta está ejecutando el SQL; probablemente no sea Michael-PC / Michael como escribió Jan.
La cuenta que ejecuta SQL necesita acceso a la carpeta compartida.
A veces, esto puede ser un mensaje de error falso. Intenté abrir el archivo con la misma cuenta que está ejecutando el proceso. Tuve el mismo problema en mi entorno y cuando abrí el archivo (con las mismas credenciales que ejecutan el proceso), dijo que debía asociarse con un programa conocido, después de que lo hice, pude abrirlo y ejecutar el Proceso sin errores.
Asegúrese de que el archivo que está utilizando ( ''C:/Users/Michael/workspace/pydb/data/andrew.out.txt''
) esté en la máquina del servidor SQL y no en la máquina cliente que ejecuta MSSMS.
Este error aparece cuando está utilizando la autenticación de SQL Server y SQL Server no tiene permiso para acceder a la carpeta de carga masiva.
Así que dar acceso al servidor SQL a la carpeta resolverá el problema.
A continuación, se explica cómo: Vaya a la carpeta, haga clic con el botón derecho -> propiedades -> pestaña Seguridad -> Editar -> Agregar (en la nueva ventana) -> Avanzado -> Buscar ahora. Debajo de la lista de usuarios en los resultados de búsqueda, encuentre algo como SQLServerMSSQLUser $ UserName $ SQLExpress y haga clic en Aceptar, en todos los cuadros de diálogo abiertos.
He llegado a una pregunta similar cuando ejecuto la inserción masiva en SSMS. Está funcionando pero falló y regresó con el "Código de falla del sistema operativo 5" al convertir la tarea en el Agente SQL Server.
Después de buscar en un montón de soluciones publicadas anteriormente, de esta manera resolví mi problema otorgando al NT SERVER / SQLSERVERAGENT con el acceso de "control total" a la carpeta de origen. Espero que traiga algo de luz a estas personas que todavía tienen problemas con el mensaje de error .
Intente dar a la carpeta (s) que contiene los permisos de lectura CSV y archivo de formato para el usuario ''MSSQLSERVER'' (o cualquier usuario que el servicio de SQL Server esté configurado para Iniciar sesión como en Servicios de Windows )
No creo que reinstalar SQL Server vaya a arreglar esto, solo va a matar el tiempo.
- Confirme que su cuenta de usuario tenga privilegios de lectura en la carpeta en cuestión.
- Use una herramienta como Process Monitor para ver qué usuario intenta acceder al archivo.
Supongo que no es
Michael-PC/Michael
quien intenta acceder al archivo, sino la cuenta de servicio de SQL Server. Si este es el caso, entonces tienes al menos tres opciones (pero probablemente otras):a. Configure el servicio SQL Server para que se ejecute como usted.
segundo. Conceda a la cuenta de servicio de SQL Server acceso explícito a esa carpeta.
do. Coloque los archivos en un lugar más lógico donde SQL Server tenga acceso o se pueda hacer que tenga acceso (por ejemplo,C:/bulk/
).
Sugiero estas cosas suponiendo que se trata de una estación de trabajo local contenida. Definitivamente, existen problemas de seguridad más graves en relación con el acceso al sistema de archivos local desde SQL Server cuando hablamos de una máquina de producción, por supuesto, esto todavía puede ser mitigado en gran medida mediante el uso de c.
arriba, y solo otorgue a la cuenta de servicio acceso a las carpetas que desea que puedan tocar.
Tuve el mismo problema SSIS 2012 y la solución fue usar la autenticación de Windows. Estaba usando autenticación SQL con el usuario sa.