2011-01-15 58 views
5

He copiado un DB de uno de mis equipos y lo uso aquí. Al intentar abrir la página que requiere ir a buscar el contenido de la base de datos, en con.open estoy recibiendo esta excepción:No se puede abrir la base de datos solicitada por el inicio de sesión. El inicio de sesión falló. Falló el inicio de sesión para el usuario

No se puede abrir el archivo físico "E: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10. SQLEXPRESS \ MSSQL \ DATA \ cakephp.mdf ". Error 32 del sistema operativo: "32 (El proceso no puede acceder al archivo porque está siendo utilizado por otro proceso )". No se puede abrir el archivo físico "E: \ Archivos de programa \ Microsoft SQL Servidor \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA \ cakephp_log.LDF". Error del sistema operativo 32: "32 (El proceso no puede acceder al archivo porque está siendo utilizado por otro proceso )". No se puede abrir la base de datos "cakephp" solicitada por el inicio de sesión. El inicio de sesión ha fallado. Error de inicio de sesión para el usuario 'Sarin-PC \ Sarin'.

He adjuntado la base de datos de Management Studio Express 2008 y también he checcked la cadena de conexión. Aquí está:

<connectionStrings> 
     <add name="cn" connectionString="server=.\sqlexpress;database=cakephp;integrated security=true;uid=sarin;pwd=******"/> 
    </connectionStrings> 

En Visual Studio, cuando pruebo la conexión, dice "La conexión de prueba se realizó correctamente". Sin embargo, hay una cosa extraña pasando. Cuando inicio sesión en Management Studio, no hay ningún signo + con la base de datos recién conectada, como se muestra.

alt text

Si el WebConfig completo se reqiured para ser visto, he pegado aquí: http://pastebin.com/sVAuN0Ug

Respuesta

7

Hay usuarios de la base de datos, pero, también hay usuarios del servidor. Un usuario debe tener derechos de inicio de sesión en SqlServer antes de poder usar la base de datos.

En su caso copió la base de datos y sus usuarios, pero esos usuarios no tienen permisos de inicio de sesión en el nuevo servidor. La solución sería agregar una nueva cuenta de inicio de sesión en SqlServer (vaya al nodo Seguridad del SqlServer, no el nodo Seguridad de la base de datos) y agréguela allí. Cuando agregue ese usuario, asígnelo a la base de datos, y eso debería funcionar.

Editar: ¿Después de leer más su problema, es posible que haya dos servidores SQL dirigidos al mismo archivo mdf? Porque eso no puede funcionar. Además, al copiar archivos de bases de datos, ¿los ha separado antes de copiar? Si todo está bien, intente realizar una copia de seguridad y luego restaurar.

+0

Pero actualmente no se muestra el nodo para la base de datos recién conectada. ¿Hay algo mal? – Cipher

+0

ver mi edición ... espero que ayude – veljkoz

+0

No, no los quité. Acabo de copiar. ¿Puede crear un problema? En mi otra computadora, no tengo acceso a Management Studio. ¿Puede ser separado sin eso? – Cipher

Cuestiones relacionadas