Usuario
Acceso denegado con Filestream. SQL Server 2008 R2

Pregunta
-
Hola a todos os comento mi caso a ver si alguno de vosotros puede decirm qué es lo que está ocurriendo.
Tengo una aplicación con Sharepoint en la que hay un apartado que permite subir y bajar archivos, cosa que realizo con FileStream para guardarlos en base de datos SQL Server 2008 R2, en local me funciona perfectamente; pero cuando he ido a pasar esta nueva funcionalidad a la máquina de desarrollo del cliente, que teóricamente está configurada perfectamente para que todo funcione bien, me he encontrado con que cuando hago un sqlFileStream = new SqlFileStream(filePath, transactionToken, FileAccess.Read); ya sea tanto a la hora de subir como bajar un archivo (con el FileAccess modificado adecuadamente) me da un error de Acceso Denegado. Cuando subo el archivo la entrada en base de datos la crea, pero el campo de datos binarios está a 0x.
¿Falta algún parámetro de configuración? ¿O alguien sabe qué es lo que ocurre?
Un saludo y muchísimas gracias por adelantado.- Cambiado Alberto López Grande (qwalgrande) lunes, 27 de agosto de 2012 13:43 Tras consensuarlo con el OP (De:SQL Server)
Todas las respuestas
-
-
Ese es el tema por lo que estoy viendo, usa autenticación SQL, ahora la cuestión la tengo en cómo realizar la cadena de conexión, porque en local me he encontrado con que tengo 2 cadenas de conexión, una en un app.config que es integrada y otra en un webconfig de sharepoint con el mismo nombre que usa la de SQL:
SQL:
<add name="BibliotecaEntities" connectionString="metadata=res://*/BibliotecaArchivos.csdl|res://*/BibliotecaArchivos.ssdl|res://*/BibliotecaArchivos.msl;provider=System.Data.SqlClient;provider connection string="data source=SRV-SQL;initial catalog=BibliotecaArchivos;User ID=ti;Password=1234;multipleactiveresultsets=True"" providerName="System.Data.EntityClient" />
Integrada:
<add name="BibliotecaEntities" connectionString="metadata=res://*/BibliotecaArchivos.csdl|res://*/BibliotecaArchivos.ssdl|res://*/BibliotecaArchivos.msl;provider=System.Data.SqlClient;provider connection string="data source=SRV-SQL;initial catalog=BibliotecaArchivos;integrated security=True;multipleactiveresultsets=True"App=EntityFramework"" providerName="System.Data.EntityClient"/>
Cuando uso la integrada me encuentro con que da un error inesperado y me sale el enlace de: Solucionar problemas de Microsoft SharePoint Foundation.
-
Hola.
Tu cuestión se encuadra más en Sharepoint que en SQL Server. Debes usar autenticación integrada, así que ese otro error, cuya naturaleza desconocemos, ¿cómo podríamos ayudarte a resolverlo? No se aporta información adicional del error y ni siquiera el enlace que pusiste funciona.
Quizá lo más conveniente sería mover el hilo al foro de Sharepoint.
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.com
Sígueme en twitter en http://twitter.com/qwalgrande- Editado Alberto López Grande (qwalgrande) lunes, 27 de agosto de 2012 12:17 errata
-
Hola.
Si pudieses mover entonces el hilo a Sharepoint te estaría muy agradecido, la verdad que no puedo ofrecer muchos más detalles del error porque no los hay, el enlace es una copia del mensaje/link que me aparece en el error que tampoco lleva a ningún sitio.
En caso de que tenga que abrir un nuevo topic en sharepoint y dar este como cerrado ruego me lo indiques.
Muchas gracias de nuevo.
-
Hola.
Lo muevo al foro http://social.technet.microsoft.com/Forums/es-ES/mosses/threads.
Alberto López Grande
SQL Server MVP
Visita mi blog en http://qwalgrande.com
Sígueme en twitter en http://twitter.com/qwalgrande -
Hola,
¿Cómo es la topología de tu instalación? Puede ser que se esté dando un problema de doble salto y tengas que implementar Kerberos.
Saludos
------------------------------------------------------------
Juan Carlos González Martín MVP de SharePoint Server
Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
Blog: http://geeks.ms/blogs/ciin
Twitter: @jcgm1978
------------------------------------------------------------ -
¿Qué tipo de autenticación estás utilizando'?
“FILESTREAM requires that integrated security (i.e., Windows Authentication) be used. When an application using Win32 attempts to access FILESTREAM data, the Windows user is validated through SQL Server. If the user has Transact-SQL access to the FILESTREAM data, access will be granted at the Win32 level also, as long as the transaction token is obtained in the security context of the Windows user who is performing the file open.”Saludos.
Fernando A. Gómez F.
fermasmas.wordpress.com
Galería de ejemplos -
-
En local funciona y me he encontrado, he heredado esta máquina de otro desarrollador, con que tengo dos cadenas de conexión, una con seguridad integrada y otra con SQL, como indico a continuación
- SQL en un webconfig de sharepoint ubicado en la carpeta 80 dentro de wss:
<add name="BibliotecaEntities" connectionString="metadata=res://*/BibliotecaArchivos.csdl|res://*/BibliotecaArchivos.ssdl|res://*/BibliotecaArchivos.msl;provider=System.Data.SqlClient;provider connection string="data source=SRV-SQL;initial catalog=BibliotecaArchivos;User ID=ti;Password=1234;multipleactiveresultsets=True"" providerName="System.Data.EntityClient" />
- Integrada en un app.config:
<add name="BibliotecaEntities" connectionString="metadata=res://*/BibliotecaArchivos.csdl|res://*/BibliotecaArchivos.ssdl|res://*/BibliotecaArchivos.msl;provider=System.Data.SqlClient;provider connection string="data source=SRV-SQL;initial catalog=BibliotecaArchivos;integrated security=True;multipleactiveresultsets=True"App=EntityFramework"" providerName="System.Data.EntityClient"/>
En el entorno de desarrollo del cliente estoy intentando implantar seguridad integrada en la cadena de conexión del webconfig de sharepoint localizado en la carpeta 80 dentro de wss, pero siempre que pongo la cadena de conexión con seguridad integrada al cargar la aplicación da un mensaje de error. La cadena de conexión que utilizo en el cliente es la siguiente:
- Cliente:
<add name="BibliotecaEntities" connectionString="metadata=res://*/BibliotecaArchivos.csdl|res://*/BibliotecaArchivos.ssdl|res://*/BibliotecaArchivos.msl;provider=System.Data.SqlClient;provider connection string="data source=SRV-SQL;initial catalog=BibliotecaArchivos;integrated security=true;App=EntityFramework"multipleactiveresultsets=True;" providerName="System.Data.EntityClient" />
- Y el mensaje de error es el que sigue:
Error inesperado.
Página de mantenimiento de elementos web: Si tiene permiso, puede usar esta página para cerrar temporalmente elementos web o quitar la configuración personal. Para obtener más información, póngase en contacto con el administrador del sitio.
Solucionar problemas de Microsoft SharePoint Foundation.
Identificador de correlación: 3d14084e-ac6e-4281-bbfb-89114184e79c- Mientras que si uso esta otra cadena de conexión que tiene autenticación de SQL no da mensaje de error, se carga la página correctamente, pero por contra está el error de FileStream:
<add name="BibliotecaEntities" connectionString="metadata=res://*/BibliotecaArchivos.csdl|res://*/BibliotecaArchivos.ssdl|res://*/BibliotecaArchivos.msl;provider=System.Data.SqlClient;provider connection string="data source=SRV-SHARESQL;initial catalog=BibliotecaArchivos;User ID=ti;Password=1234;multipleactiveresultsets=True"" providerName="System.Data.EntityClient" />