Visual Basic.NET - Dudas Aaplicación Remota

 
Vista:

Dudas Aaplicación Remota

Publicado por Marcela (24 intervenciones) el 20/04/2010 21:59:16
Saludos me encuentro desarrollando una aplicación de escritorio que se conectará (eso espero) remotamente a una base de datos de SQL Server Express 2008. Este servidor se encontrará en una ciudad distinta a donde se conectarán los cleintes.

Bueno, me imagino que para esto es necesario que el servidor tenga una IP Fija y el SQL Server Express 2008 instalado ¿es todo lo que se requiere?

¿Es necesario instalar el SQL Server Express 2008 instalado en las maquinas clientes o solo en el Servidor?

Una duda bastante grande es con respecto a la cadena de conexión y la base de datos. ¿Es necesario utilizar una contraseña? Si es asi esta donde se pone en la base de datos o donde?
¿Todas las maquinas clientes deben utilizar la misma contraseña para conectarse?
¿Si no le pongo contraseña cualquier usuario que sepa la dirección IP podría conectarse a la base de datos y hacer cambios?

Espero y puedan ayudarme, no encuentro respuesta a ninguna de mis dudas por ningún lado, ya busque en San Google y no he tenido suerte, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dudas Aaplicación Remota

Publicado por OliBeer (6 intervenciones) el 21/04/2010 17:15:37
Hola Marcela, vamos por partes,

Por supuesto que es necesario que un servidor tenga la instancia de SQL Server, no sé qué duda específica tengas sobre eso.

Sí, el servidor necesita una IP fija, para que cualquier cliente que acceda al sistema, se pueda conectar a la base de datos. No te quiero confundir, pero otra opción sería si los clientes, se conectaran a una VPN y entonces, todos quedarían dentro de la Intranet, y así también pordrían conectarse al servidor, sin la necesidad de IP fija.

Los sistemas distribuidos, en este caso sistema .NET, están hechos para centralizar la informacaión que se recauda, por medio de una sistema X, de esta manera, cualquier cliente, siempre tiene acceso a la misma información que cualquier otro cliente. El SQL Server debe instalarse en el servidor, y todos sus clientes deben conectase a éste. Sí deseas que cada cliente tenga una base de datos, tendrías información independiente en cada uno, por su distinta base de datos.

Debes leer sobre Inicios de Sesión, hay un inicio de sesión para conectarte a SQL Server, y hay uno para conectarte a la Base de datos. En sí, a una base de datos no se le asigna contraseña, lo que se hace es que, se le asigna un Usuario (Inicio de sesión), un usuario que manejará la base de datos, un usuario que se conectará a la base de datos. Éste usuario es independiente de la base de datos, a qué me refiero, a que hay un apartado de Usuarios en SQL Server y ahí le asignas permisos y privilegios, le asignas bases de datos, ojo, "bases" o sea, que le puedes asignar más de una, le puedes asignar de 0 a n... Busca información sobre Usuarios en SQL Server, para que te quede más claro eso y veas cómo funciona.

Una cadena de conexión con usuario y contraseña, sería de la siguiente manera:

Data Source=SERVIDOR; Initial Catalog=BASE_DE_DATOS; Integrated Security=False; User Id=USUARIO; Password=CONTRASENA;

Si en la cadena de conexión se especifica el Usuario y Contraseña, Integrated Security debe ser False, de lo contrario, si no se especifica, debe ser True, y Usuario y contraseña deben estar vacíos.

Todas las máquinas cliente, de preferencia deben utilizar el mismo Usuario(Inicio de sesión) para conectarse a la base de datos, aunque puede ser que diferentes clientes, se conecten con usuario diferentes.

Sí, si no le asignas un inicio de sesión a tu base de datos, cualquier se podría conectar.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dudas Aaplicación Remota

Publicado por Marcela (24 intervenciones) el 22/04/2010 00:35:21
Gracias por tu respuesta me ha servido de mucho. Espero puedas contestarme lo siguiente si no es mucha molestia =)

Lo de los usuarios en SQL no me quedo muy claro. Todo esto de los permisos donde se puede hacer ¿en el management studio?

Entonces dime si entiendo bien: la contraseña no se le pone a la base de datos sino que con la cuenta de un usuario creada, esa contraseña que tiene el usuario es la que se utiliza en la cadena de conexión para conectarse a la base de datos cierto?

Mi principal problema es que la empresa a la que le estoy haciendo la aplicación cuentan con un administrador el cual no tiene acceso a eliminar borrar datos, ¿entonces yo misma tendría que crear una cuenta para ese administrador? ¿Entonces ese administrador no podría utilizar el management studio con todas las opciones?

Una última cosa:
Yo tengo una tabla con usuarios con un campo de usuario y otro de contraseña. La cual verifico desde un form para entrar al sistema y ocultar modulos y unas funciones. Este login de usuarios no tiene nada que ver con los usuarios de sql verdad? ¿Todos estos trabajarían bajo un mismo usuario pero el cual yo cree en el SQL verdad?

Tengo una gran duda ya que las maquinas clientes se que se conectan me gustaria dejarles la cadena de conexión editable y visible por si se modifica la dirección IP. ¿Esto es bueno o es mejor dejarla dentro del código? Ya que se si la dejo visible los usuarios podrían ver el usuario y contraseña del login......y tal vez alguien que sepa algo de programación pueda hacer un SELECT * de Usuarios y ver las contraseñas....

Si creo usuarios en SQL como lo menciono aqui arriba entonces tengo que utilizar eso que se llama autentificación de SQL?

Muchisimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dudas Aaplicación Remota

Publicado por OliBeer (391 intervenciones) el 22/04/2010 23:29:35
Hola,

Lo de los usuarios en SQL no me quedo muy claro. Todo esto de los permisos donde se puede hacer ¿en el management studio?

- Sí, esto es en el Management Studio.

Entonces dime si entiendo bien: la contraseña no se le pone a la base de datos sino que con la cuenta de un usuario creada, esa contraseña que tiene el usuario es la que se utiliza en la cadena de conexión para conectarse a la base de datos cierto?

- Correcto.

Mi principal problema es que la empresa a la que le estoy haciendo la aplicación cuentan con un administrador el cual no tiene acceso a eliminar borrar datos, ¿entonces yo misma tendría que crear una cuenta para ese administrador? ¿Entonces ese administrador no podría utilizar el management studio con todas las opciones?

- Esta parte no me quedó clara...

Yo tengo una tabla con usuarios con un campo de usuario y otro de contraseña. La cual verifico desde un form para entrar al sistema y ocultar modulos y unas funciones. Este login de usuarios no tiene nada que ver con los usuarios de sql verdad? ¿Todos estos trabajarían bajo un mismo usuario pero el cual yo cree en el SQL verdad?

- Correcto, estos usuarios no tienen que ver con los inicios de sesión de SQL Server.

- Sí, todos trabajarían con el mismo inicio de sesión.

Tengo una gran duda ya que las maquinas clientes se que se conectan me gustaria dejarles la cadena de conexión editable y visible por si se modifica la dirección IP. ¿Esto es bueno o es mejor dejarla dentro del código? Ya que se si la dejo visible los usuarios podrían ver el usuario y contraseña del login......y tal vez alguien que sepa algo de programación pueda hacer un SELECT * de Usuarios y ver las contraseñas....

- Puedes dejarla donde tú quieras, yo te recomiendo que lo hagas fuera, así es más fácil modificarla, eso sí, no se te olvide que para que nadie te la pueda robar, la tienes que Encriptar!!

Si creo usuarios en SQL como lo menciono aqui arriba entonces tengo que utilizar eso que se llama autentificación de SQL?

- Correcto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar