Aprendiendo Sql

14/12/2006 - 18:54 por Eduardo | Informe spam
Hola a todos
Estoy desarrollando una pequeña apliaccion que trabaja con base de datos
sql,
generé la tabla con vs.net 2005 y despues agregue un conjunto de datos para
crear
el dataset tipado y trabajo bien con la base.
Ahora el problema aparece porque quiero ejecutar la misma aplicacion desde
otra maquina con un acceso directo del
ejecutable y no se como hacer para que trabaje con la misma base de datos
la estructura de directorios que tengo es asi:

c:\ mi programa\
\data\ " base de datos .mdf "
\programa\" archivo ejecutable "

Por favor si alguien me puede orientar como hacerlo para que se pueda
trabajar desde dos maquinas con
la misma base de datos y si esa es la forma correcta de hacerlo
o tengo que crear otro archivo ejecutable que utilice la misma base de
datos.
Desde ya muchas gracias y espero que me entiendan.
Eduardo.
 

Leer las respuestas

#1 Alberto Poblacion
14/12/2006 - 22:32 | Informe spam
"Eduardo" wrote in message
news:
Estoy desarrollando una pequeña apliaccion que trabaja con base de datos
sql,
generé la tabla con vs.net 2005 y despues agregue un conjunto de datos
para crear
el dataset tipado y trabajo bien con la base.
Ahora el problema aparece porque quiero ejecutar la misma aplicacion desde
otra maquina con un acceso directo del
ejecutable y no se como hacer para que trabaje con la misma base de datos
la estructura de directorios que tengo es asi:

c:\ mi programa\
\data\ " base de datos .mdf "
\programa\" archivo ejecutable "

Por favor si alguien me puede orientar como hacerlo para que se pueda
trabajar desde dos maquinas con
la misma base de datos y si esa es la forma correcta de hacerlo
o tengo que crear otro archivo ejecutable que utilice la misma base de
datos.



Aunque no lo dices expresamente, me imagino que lo que estás haciendo
es que desde una máquina lanzas un ejecutable que está en la otra (
\\maquina\directorio\miprograma.exe ), y te da un error de seguridad cuando
accedes a la base de datos.
El problema no tiene nada que ver con la base de datos en sí misma. Lo
que ocurre es que te estás encontrando con el sistema de seguridad de .Net,
que restringe los permisos de un programa dependiendo de la ubicación desde
la que se ejecute. De forma predeterminada, los ejecutables que se lanzan
desde el propio disco duro del mismo ordenador tienen permisos ilimitados,
pero los que se lanzan desde otra máquina tienen los permisos muy limitados
y, entre otras cosas, no pueden usar bases de datos (ni en la misma máquina
ni en otra). Estos permisos predeterminados se pueden cambiar desde el panel
de control, herramientas administrativas, configuración del .Net framework.
Otra alternativa es copiar el mismo ejecutable desde la otra máquina (no
"crear otro ejecutable" como dices en la pregunta) al disco local y
ejecutarlo desde ahi.

Otra cosa más: veo que "base de datos.mdf" lo tienes en el directorio
data de tu programa, en lugar de tenerlo en el directorio de bases de datos
de SQL Server. Eso me lleva a pensar que estás usando la modalidad "user
instance" de Sql Server Express. Cuando trabajas en este modo de
funcionamiento, la base de datos solo es accesible localmente, no se puede
usar desde red. Tendrás que cambiar la cadena de conexión de Sql Server para
que use una base de datos normal en lugar de una instancia de usuario.
Además, si la versión de Sql Server que estás usando es la Express, tendrás
que reconfigurarlo para que admita conexiones de red, ya que de forma
predeterminada se instala configurado para admitir únicamente conexiones
locales.

Preguntas similares