Aplicacion solo reconoce la Base de Datos si es Ejecutada como Administrador.
-
viernes, 30 de octubre de 2009 9:33Hola:Estoy desarrollando una aplicacion en Visual Studio 2008 la cual se conecta a una base de datos local. Cuando ejecuto la aplicacion en ambiente de desarrollo todo trabaja perfecto, al igual que cuando ejecuto el .exe ubicado en la carpeta bin del proyecto con permisos de administrador (clic derecho - ejecutar como administrador).Necesito que debo hacer para que la aplicacion se pueda conectar a la bd sin tener que ser ejecutada con permisos de administrador o, en caso de que sea necesario que corra con estos permisos, saber como se los activo por defecto.Mil gracias!
Todas las respuestas
-
viernes, 30 de octubre de 2009 10:26Moderador:-)
Hola,
¿Que tipo de BD es?
¿Que error te da?
Saludos,No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS] Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Blog: http://msmvps.com/blogs/lfranco
Geeks: http://geeks.ms/blogs/lfranco
-
viernes, 30 de octubre de 2009 17:47Es en SQL Server 2005 y el error es que la aplicacion crashea.Estuve buscando como hacer que la aplicacion corra con permisos de administrador todo el tiempo y di con esto: http://community.bartdesmet.net/blogs/bart/archive/2006/10/28/Windows-Vista-_2D00_-Demand-UAC-elevation-for-an-application-by-adding-a-manifest-using-mt.exe.aspxReemplazo el manifest y me funciona (inicia con permisos de administrador) mientras no vuelva a compilar la aplicacion, si la compilo de nuevo se sobreescribe el manifest y sigue ejecutando sin permisos de admin.Gracias
-
sábado, 31 de octubre de 2009 22:33
Es en SQL Server 2005 y el error es que la aplicacion crashea.
Alguien sabe algo???? :(Estuve buscando como hacer que la aplicacion corra con permisos de administrador todo el tiempo y di con esto: http://community.bartdesmet.net/blogs/bart/archive/2006/10/28/Windows-Vista-_2D00_-Demand-UAC-elevation-for-an-application-by-adding-a-manifest-using-mt.exe.aspxReemplazo el manifest y me funciona (inicia con permisos de administrador) mientras no vuelva a compilar la aplicacion, si la compilo de nuevo se sobreescribe el manifest y sigue ejecutando sin permisos de admin.Gracias -
domingo, 01 de noviembre de 2009 19:03Quizás debas modificar permisos del usuario que ejecuta la aplicación contra la BBDD y no es el administrador en el SQLSERVER.
-
domingo, 01 de noviembre de 2009 19:59Moderador
holaAlgo que podrias probar es el de poner el tu SO al usuario con que estas logueado en el grupo de administradores local de la PCigual se que esta no es la mejor solucion, lo que debe estar pasando es que seguramente te estas conectando a la db con seguridad integrada, y este usuario no tiene permisos de acceso- que string de conexion estas utilizando para conectarte a sql server?revisa la seguridad de la db, y verifica si el usuario con que estas logueando a Windows este presentela imagen te guiara a donde me refiero que se debe verificar si el usuario esta presente, o algún grupo en el que este incluidopor defecto el grupo de administradores tiene acceso por eso te comentaba al principio que lo agregues a ese grupo de la pc local.saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Juan Carlos Ruiz [BogotaDotNet.org]Moderator jueves, 26 de noviembre de 2009 23:10
-
domingo, 01 de noviembre de 2009 20:02
hola
Hola:Algo que podrias probar es el de poner el tu SO al usuario con que estas logueado en el grupo de administradores local de la PCigual se que esta no es la mejor solucion, lo que debe estar pasando es que seguramente te estas conectando a la db con seguridad integrada, y este usuario no tiene permisos de acceso- que string de conexion estas utilizando para conectarte a sql server?revisa la seguridad de la db, y verifica si el usuario con que estas logueando a Windows este presentela imagen te guiara a donde me refiero que se debe verificar si el usuario esta presente, o algún grupo en el que este incluidopor defecto el grupo de administradores tiene acceso por eso te comentaba al principio que lo agregues a ese grupo de la pc local.saludos
Leandro Tuttini
Blog
Buenos Aires
ArgentinaMil gracias por todas sus respuestas.
Resulta que efectivamente me estoy conectando con Seguridad Integrada. Yo quisiera hacerlo estableciendo un usuario y un password en la bd. Pero he leido muchos tutos de como hacerlo y no doy.
Algun link que conozcan donde me quede bien claro como hacer la credencial y como configurar todo el ambito de seguridad que esto exige?Gracias de nuevo! -
domingo, 01 de noviembre de 2009 20:14Moderador
La instalación predeterminada de Sql Server únicamente da de alta como "login" el grupo de Administradores de Windows, mapeándolo al rol de sysadm de la base de datos. Si se quiere que puedan acceder al Sql Server otros usuarios que no sean administradores, es necesario crearles expresamente un "login".
El login se puede crear desde el Sql Server Management Studio (SSMS), en la rama Seguridad que cuelga del Servidor en el Examinador de Objetos. Hay dos alternativas:
1) Puedes añadir el usuario de Windows con el que ejecutas el programa, y dejar en la cadena de conexión la autneticación integrada.
2) Puedes crear un usuario con su password, usando autenticación de Sql Server, y añadir esos datos en la cadena de conexión. En este caso, hay que habilitar en el servidor este modo de funcionamiento, que por defecto viene desactivado (te deja crear el usuario pero luego no puede hacer login). Para activar la autenticación de Sql Server, se puede usar el SSMS, pestaña Seguridad en las Propiedades del Servidor.
Una vez añadido el "login", hay que mapearlo a un "user" en la base de datos a la que deba acceder. Una vez más, esto se hace desde el SSMS, rama "Seguridad" de la base de datos (no la rama del servidor, que es la que hemos usado antes para crear el "login"). Desde la misma ventana que sirve para crear el usuario se le pueden dar los permisos que convengan, por ejemplo, se puede marcar el checkbox que lo habilita como db_owner si queremos que tenga permisos ilimitados sobre esa base de datos.- Marcado como respuesta Juan Carlos Ruiz [BogotaDotNet.org]Moderator jueves, 26 de noviembre de 2009 23:10
-
domingo, 01 de noviembre de 2009 20:38Moderador
holahay un tema aquí sino recuerdo mal cuando instalas sql server en uno de los puntos seleccionas si quieres seguridad integrada o lo que se denomina mixed modeme refiero a esto:lo que no estoy seguro si esta explicación aplicara a sql server 2005aunque este otro seguro funcione:veras que en este link hay una nota que dice:"Siempre que sea posible, utilice la autenticación de Windows."saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Juan Carlos Ruiz [BogotaDotNet.org]Moderator jueves, 26 de noviembre de 2009 23:10
-
domingo, 01 de noviembre de 2009 21:20
hola
Pero es que si yo voy a distribuir mi aplicacion y la aplicacion depende de la base de datos la cual es local, como me voy a ir a cada maquina en la que se instale el software a configurar la base de datos??? Seria insolito hacerlo asi.hay un tema aquí sino recuerdo mal cuando instalas sql server en uno de los puntos seleccionas si quieres seguridad integrada o lo que se denomina mixed modeme refiero a esto:lo que no estoy seguro si esta explicación aplicara a sql server 2005aunque este otro seguro funcione:veras que en este link hay una nota que dice:"Siempre que sea posible, utilice la autenticación de Windows."saludos
Leandro Tuttini
Blog
Buenos Aires
ArgentinaYo necesito configurar la BD con un usuario. Ahora, ese usuario que yo registre (al que le creo el login) debe existir en el equipo de windows donde este la BD o pertenece directamente a esta? Porque si debe ser usuario de windows pues nada se hace :SEn fin, mil gracias por la ayuda y si alguien tiene mas informacion bienvenida. Voy a estar leyendo lo que me han pasado. -
domingo, 01 de noviembre de 2009 21:33ModeradorholaRecuerda que sql server de por si no esta pensada al 100% para trabajar en modo local, o sea sql server es un motor de base de datos en donde deberia trabajar en un servidor de base de datos centralizado al cual accedieran todas las terminales.Este es que esquema con que fue pensado sql server y muchos otros sevidores, no es un defect de sql server, si tomas Oracle te apsara lo mismo, hay una versión local de Oracle y seguro te encoantraras con el mismo problema, por ahi mysql es algo diferente porque no esta tan integrado a Windows pero la seguridad es similar si debes crear una cuanta.En sql server también puede si habilitar la seguridad de SQL, o como te comentaba la seguridad mixta (mixed mode).Segun comentas entonces estas usando Sql Server Express, el cual es una version limitada del motor original.En tu caso comentas que redistribuyes la aplicacion y que cada terminar tiene su db instalada, la pregunta seria es asi como debe funcionar la aplicación? es solo una pregunta, en ningún momento usuario compartiran informacion entre ellos ?Si verdaderamente tu aplicacion corre local entonces se solucina facil como muestran los link que pase anteriormente solo debes habilitar la seguridad de SQL Server y eso es todo, por defecto tiene la cuanta de "sa", pero puede crear otra cuenta diferente si necesitas.saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
domingo, 01 de noviembre de 2009 21:58ModeradorUna pregunta: La base de datos, ¿necesitas que sea multiusuario? Lo digo porque si la vas a instalar como local, y sólo la va a usar la aplicación local, podrías montarla en el modo que se denomina "Instancia de Usuario". Esto se consigue poniéndole en la cadena de conexión el parámetro "User Instance=true;AttachDbFilename=\ruta\Database.mdf". De esta manera, se "monta" directamente el fichero .mdf (que lo puedes distribuir junto con tu programa), y automáticamente te reconoce el usuario actual como "dbo" de la base montada, sin que tengas que hacer nada para cambiar los permisos. Ah, por cierto, esto solo funciona con la versión Express.
-
lunes, 02 de noviembre de 2009 22:47
Una pregunta: La base de datos, ¿necesitas que sea multiusuario? Lo digo porque si la vas a instalar como local, y sólo la va a usar la aplicación local, podrías montarla en el modo que se denomina "Instancia de Usuario". Esto se consigue poniéndole en la cadena de conexión el parámetro "User Instance=true;AttachDbFilename=\ruta\Database.mdf". De esta manera, se "monta" directamente el fichero .mdf (que lo puedes distribuir junto con tu programa), y automáticamente te reconoce el usuario actual como "dbo" de la base montada, sin que tengas que hacer nada para cambiar los permisos. Ah, por cierto, esto solo funciona con la versión Express.
Pues esto me serviria en estos momentos para desplegar la beta, pero en corto tiempo se hara otro modulo que se conectara remotamente a la base de datos.Igual ya intente lo que dijiste varias veces, y no me funciona, tambien saca error y no tengo idea por que.Sigo intentando, mil gracias. -
jueves, 05 de noviembre de 2009 13:55ModeradorHola!
¿ Puedes postar la string de conexión que utiliza para conectar a la base de datos SQL?
Saludos!
Rafael Fagundes

