¿Cómo puedo bloquear mi base de datos MS-SQL para mis usuarios y aún así acceder a ella a través de ODBC?

StackOverflow https://stackoverflow.com/questions/50164

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo una aplicación ms-access que accede a una base de datos ms-sql a través de una conexión ODBC.Estoy intentando obligar a mis usuarios a actualizar los datos. solo a través de la parte de la aplicación, pero no me importa si leen los datos directamente o a través de su propia base de datos de acceso ms personalizada (la usan para crear informes ad hoc).

Lo que estoy buscando es una manera de hacer que los datos solo sean editables si usan el archivo .mde compilado que les distribuyo.Sé que puedo hacer que los datos sean leídos solo para la población general y editables para usuarios seleccionados.

¿Hay alguna manera de hacer que ms-sql haga que los datos sean editables solo si acceden a ellos a través de mi mde predefinido?

Pensé, ¿hay alguna manera de hacer que ms-access inicie sesión en la base de datos como un usuario diferente (o cambie el inicio de sesión una vez conectado)?


@Jake,
Sí, está usando formularios.Lo que estoy buscando hacer es simplemente cambiar de usuario una vez cuando aparezca mi formulario de plataforma de lanzamiento/menú principal.

@Pedro,
De hecho, esa es la dirección en la que me dirijo.Lo que no he determinado es cómo hacer para cambiar a esa segunda identificación.No me preocupa tanto que se detecte la contraseña, todos los usuarios son internos y están en una LAN interna.Si pueden detectar esa contraseña, ciertamente podrán detectar la de mi ID privilegiada.

@nadie en general,
En este momento su seguridad está en la oscuridad.Le he dado a los usuarios un .mdb especial para realizar informes que les permitirá leer datos, pero no actualizarlos.No saben cómo volver a vincular las tablas a través de la conexión ODBC.Un usuario un poco más alfabetizado en ms-access/DB podría pasar por alto lo que he hecho en segundos, y hay algunos que se imaginan ser DBA, por lo que eventualmente lo descubrirán.

¿Fue útil?

Solución

Hay una manera de hacer esto que es efectiva con usuarios internos, pero que puede piratearse.Crea dos ID para cada usuario.Uno es un ID de informes que tiene acceso de solo lectura.Este es el ID que el usuario conoce:Fred / mi contraseña

El segundo es una identificación que puede realizar actualizaciones.Esa identificación es Fred_app/mypassword_mangled.Inician sesión en su aplicación con Fred.Cuando su aplicación accede a datos, utiliza la identificación de la aplicación.

Esto se puede oler, pero para muchas aplicaciones es suficiente.

Otros consejos

¿Su aplicación permite actualizaciones de tablas vinculadas o pasa por formularios?Parece que su idea de utilizar un usuario centralizado con funciones distintas es el camino a seguir.Sí, puede cambiar de usuario, pero eso puede introducir más codificación y una vez que comience a agregar más y más código, otras soluciones (procedimientos almacenados, etc.) pueden parecer más atractivas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top