2009-06-23 22 views
5

Estoy tratando de realizar una inserción masiva en SQL Server:SQL Edición Insertar Acceso

BULK INSERT SampleData FROM '<UNC_Path>' 
WITH (FIELDTERMINATOR = '|', ROWTERMINATOR = '\n') 

Esto funciona corriendo en contra de mi base de datos local, pero cuando trato de correr contra nuestro servidor dev, estoy consiguiendo el siguiente error:.

"¿no carga masiva porque el archivo" ..." no se pudo abrir el código de error del sistema operativo 5 (. Acceso denegado)

Tanto mi cuenta y la cuenta de servicio de SQL tiene acceso a la ruta. Mi administrador de red está trabajando con delegados para obtener esto para trabajar, pero se está quedando sin ideas. ¿Alguien ha visto este problema antes?

Respuesta

3

Presupuesto de Remus Rusanu:

Your client authenticates with SQL Server, then SQL Server impersonates the client and tries to access the UNC path. That is Delegation and is implicitly forbidden. You must take the explicit steps to enable constrained delegation for the SQL Server service account. See this article explaining the details: http://msdn.microsoft.com/en-us/library/ms998355.aspx The article is shows constrained delegation for an ASP service accessing the back end database, but in your case it would be the SQL Server in the middle accessing the back end UNC share.

Como alternativa, se puede conectar con el servidor SQL utilizando la autenticación de SQL. Eso haría que el Servidor SQL acceda a las acciones bajo su propia cuenta.

¿Y está seguro de que la inserción masiva se ejecuta en la cuenta del servidor Sql? Si se trata de un trabajo por lotes, probablemente se ejecute en la cuenta del Agente de servidor Sql. Por defecto, ese es el sistema \ NetworkService. Cámbielo a un usuario de dominio con acceso al recurso compartido.

Cuestiones relacionadas