Desconexión de sql server 2000

Tengo una base de datos en sql server 2000 con sp4 a la cual se conectan varios usuarios por medio de una mdb de access.
En un principio todos los usuarios tenían su propio nombre de usuario y contraseña y la conexión se llevaba a cabo por medio de una conexión odbc.
Todo funcionada bien pero, como algunos de los usuarios que acceden a los datos no son empleados de la empresa, busqué la forma de no tener que crear una conexión odbc donde el nombre de usuario y contraseña estuvieran a la mano y también para evitarnos el problema de configurar la odbc en cada máquina que iba a tener acceso.
Hice un formulario con un botón que hiciera la conexión automática con el siguiente código:
Private Sub Comando0_Click()
ConnectStr = "ODBC;DRIVER=SQL Server;SERVER=abc.dyndns.org;DATABASE=bdSQL;UID=usuariogeneral;PWD=usuariogeneralactivo"
For Each t In CurrentDb.TableDefs
If t.SourceTableName <> "" Then
t.Connect = ConnectStr
t.RefreshLink
End If
Next
DoCmd. Close
DoCmd. OpenForm "VERSISLOCALCONSULTA", acNormal
End Sub
En realidad funciona bien en 10 máquinas ya que en ningún momento los usuarios tienen que conocer el nombre de usuario y contraseña con el que se conectan ni tengo que crear conexiones odbc adicionales, sin embargo tengo 2 máquinas que entran y se autentican de manera normal pero después de un rato al entrar a algún formulario o ejecutar una consulta, aparece el siguiente error:
Error en la conexión:
SQLState: '28000'
Error de SQL Server: 18456
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'SERVER\Invitado'.
Y después me muestra la pantalla de "inicio de sesión para sql server" donde identifica bien a abc. Dyndns.org pero, está marcada la opción de "usar servidor de confianza".
A veces aun después de desmarcar dicha opción en introducir nuevamente el nombre y contraseña del usuario, vuelve a marcar el mismo error pero, después de intentar un par de veces se vuelve a autenticar y funciona sin problemas durante un rato.
¿Qué me puedes recomendar para corregir este problema?
Respuesta
1
¿Por lo que veo usas un usuario de sql para todos?
Debería funcionar, pero por lo que me explicas parece que se corta la conexión.
Por que no lo pruebas creando en el SQL Server usuarios de Windows, ¿uno para cada usuario de la bbdd?
A ver si te entendí bien.
Si uso un sólo usuario sql para todos. Con esto lo que intento es que los clientes que se conectan nunca sepan su usuario y contraseña para que no tengan acceso de ninguna manera a las tablas y datos que yo no quiero, sino que lo tengan que hacer por medio de formularios y consultas en los cuales solo pueden ver la información que yo quiero que vean. También es por ello que no hacen una conexión por medio de los orígenes de datos de odbc, para que la información no se quede en el registro y puedan importar datos de las tablas de sql a otra aplicación y leerla completa (por ejemplo importando las tablas a excel).
Esto lo llevo a cabo por medio del botón de comando cuyo código te anexé, el cuál refresca las tablas al abrir la base de datos de access de forma automática sin pedir al usuario credenciales para la autenticación.
Si a lo que te refieres es a crear un usuario de sql para cada equipo que se va a conectar, eso funciona de maravilla y no hay desconexiones.
El problema es que el botón de comando que genera la actualización de las tablas tendría que llevar un código personalizado (con el usuario y contraseña correspondiente) para cada máquina que se va a conectar, entonces no usarían todos el mismo usuario y contraseña y por lo tanto yo tendría nomas 2 opciones: o generar un código personalizado para cada instalación o darle a conocer a cada usuario sus datos de usuario y contraseña para que ellos hagan la conexión.
Mi problema es sólo en 2 máquinas, las otras 10 funcionan perfecto y no se desconectan.
No se si sepas de algún driver o librería que pudiera faltarle o se necesite actualizar en estas 2 máquinas para eliminar el problema o si sea un problema de exceso en las conexiones simultáneas. Lo curioso es que si este último fuera el caso, se desconectarían 2 máquinas de forma aleatoria pero, por el contrario siempre se me descoenctan las 2 de siempre.
Saludos!
Tiene toda la pinta de ser un problema de red en esas dos maquinas, ¿están todas en el mismo dominio? Intentar averiguar que tienen diferente esos dos equipos del resto, aunque me es difícil saber lo que puede pasarles.
Igualmente, yo te aconsejo que la seguridad la montes en SQL Server, por que aunque le tengas que dar la contraseña a cada usuario (si montas la seguridad por usuario windows, es probable que se conecte directamente) tendrás contralado exactamente lo que puede hacer cada usuario, ya que puedes definir la seguridad más detalladamente.
Lo que haces en access, si el usuario es un poco espabilado, podrá abrir tu código, por lo que tendrá acceso a todas las tablas del sql, para modificarlas a su antojo...
Gracias por tus comentarios. Voy a buscar un poco más el problema de las 2 máquinas y si no me es posible resolverlo volveré a asignarle un usuario y contraseña a cada máquina.
Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas