CMS modules by everest poker.

Seguridad opaca/transparente

Imprimir
Valoración del Usuario:  / 5
MaloBueno 
Categoría: Teórico-práctico
Escrito por Neckkito

Si queréis bajaros este artículo en pdf pulsad aquí


Índice de contenidoSeguridad opaca-transparente


¿SEGURIDAD OPACA? ¿SEGURIDAD TRANSPARENTE?
SABER QUÉ USUARIO ESTÁ USANDO EL PC
UN PEQUEÑO EJEMPLO PRÁCTICO
UTILIZANDO EL WINDOWS SCRIPT HOST PARA SACAR INFORMACIÓN DEL PC

 

¿SEGURIDAD OPACA? ¿SEGURIDAD TRANSPARENTE?
Si bien lo que hemos explicado sobre seguridad, tanto en el artículo dedicado a ello como en los ejemplos que hemos podido ver en la sección “ejemplos de seguridad”, es la sistemática más “usual”, vamos a desarrollar este breve artículo para hablar de dos conceptos interesantes: seguridad opaca y seguridad transparente (podréis encontraros con páginas que utilizan otra terminología para lo que vamos a exponer, pero el trasfondo del asunto es el mismo).


Cuando hablamos de un ordenador con Access lo que generalmente nos viene a la cabeza es un PC al alcance de todo el mundo, donde cualquier persona puede sentarse delante de él y hacer doble click para abrir nuestra BD. En este caso estamos hablando de seguridad opaca, porque no tenemos posibilidad de saber quién se va a sentar ahí e intentar acceder a nuestra aplicación.


Y es precisamente en este caso donde podemos poner en práctica todo lo que hemos aprendido en los artículos que comentábamos al principio: encriptar la BD, poner un formulario inicial de usuario y password, etc.


Pero hay otras circunstancias donde sí podemos saber qué usuario está “sentado” delante de ese ordenador. ¿Por qué? Porque el usuario no tiene más remedio, para acceder a Windows, que utilizar su nombre de usuario y password. E incluso, más allá, hay sistemas de acceso al sistema operativo que requieren una tarjeta de usuario, lo que limita aún más el hecho de que “cualquier persona” pueda utilizar ese ordenador.


Es en este segundo caso cuando hablamos de seguridad transparente.


La existencia de esta “seguridad transparente”, que ya nos crea un “paso de seguridad” previo y externo a nuestra BD, nos “facilita” la gestión de la seguridad de nuestra BD.


Y, como comentábamos en diferentes artículos de esta sección de Teoría/Práctica, tener en cuenta esta circunstancia nos puede ayudar muchísimo en el planteamiento del proyecto de lo que será nuestra BD.


SABER QUÉ USUARIO ESTÁ USANDO EL PC
Ahora la pregunta es, ¿y cómo podemos saber qué usuario está utilizando el PC? Para ello tenemos una función denominada “Environ”. Vamos a ver un pequeño ejemplo de cómo utilizar dicha función.


En una base de datos vacía, creamos un formulario en blanco. Lo situamos en vista diseño y creamos en él un botón de comando. Sacamos las propiedades de ese botón y nos vamos a la pestaña Eventos->Al hacer click. En dicho evento generamos código y escribimos, en el VBE, lo siguiente:


---
Private Sub Comando0_Click()
    Dim vUser As Variant
   
    vUser = Environ("UserName")
   
    MsgBox vUser
End Sub
---


Ahora, al hacer click sobre ese botón, nos aparecerá un MsgBox donde se nos informará del nombre de usuario que ha iniciado sesión en Windows.


Y supongo que alguien, al leer lo anterior, se preguntará, ¿y qué hago yo con esto? Vamos a desarrollar una pequeña aplicación práctica sobre lo explicado.


UN PEQUEÑO EJEMPLO PRÁCTICO
1.- Vamos a suponer que tenemos una aplicación en nuestra empresa, organización, casa o donde queramos, y que sólo queremos que la utilicen determinados usuarios, que, por supuesto, sabemos que entran en Windows a través de usuario y contraseña. Nosotros ya habremos hecho nuestra lista con los nombres de los usuarios a los que queremos permitir el acceso a nuestra BD (por ejemplo, ejecutando en cada sesión de usuario la mini-aplicación que hemos comentado antes).


2.- En nuestra aplicación creamos una tabla, a la que llamaremos TUsers, con un único campo, de tipo texto, al que llamaremos [nomUser] (no es necesario que sea clave principal). En esta tabla escribiremos los nombres de usuario a los que queramos permitir el acceso.


3.- Imaginemos que el formulario que se muestra al usuario, al abrir la base de datos, es FMenu.


Para aquellos que no sepan cómo hacer eso lo explico aquí muy rápidamente:


3.1.- Creamos un formulario en blanco y lo guardamos como FMenu
3.2.1.- Para usuarios de  Access 2007: hacemos click sobre el botón de Office ? Opciones de Access ? Base de datos actual ? Mostrar Formulario, y seleccionamos FMenu
3.2.2.- Para usuarios de Access 2010: menú Archivo ? Opciones ? Base de datos actual ? Mostrar Formulario, y seleccionamos FMenu
3.2.3.- Para usuarios de Access 2003: menú Herramientas ? Inicio… ? Mostrar Formulario, y seleccionamos FMenu


4.- Situamos FMenu en vista diseño, sacamos sus propiedades, y en el evento “Al abrir” generamos el siguiente código:


---
Private Sub Form_Open(Cancel As Integer)
    Dim vUser, vComp As Variant
    vUser = Environ("UserName")
   
    vComp = DLookup("[nomUser]", "TUsers", "[nomUser]='" & vUser & "'")
   
    If IsNull(vComp) Then
        MsgBox "No está autorizado para abrir esta BD", vbCritical, "RESTRINGIDO"
        DoCmd.Quit
    End If
End Sub
---


Y ya está. Si el usuario está dado de alta en nuestra tabla podrá acceder a la BD; en caso contrario se le avisará de que ello no es posible.

UTILIZANDO EL WINDOWS SCRIPT HOST PARA SACAR INFORMACIÓN DEL PC
Podemos utilizar, siguiendo en la línea de lo que estamos explicando, lo que se denomina “script host” para poder obtener datos del PC.

Para ello debemos escribir un código, por ejemplo en un botón de comando, el siguiente código:


Private Sub cmdWSH_Click()
    Dim wshNetwork As Object 'Nuevo wshNetwork
    Set wshNetwork = CreateObject("WScript.Network")
    MsgBox "Nombre del equipo: " & wshNetwork.ComputerName
    MsgBox "Nombre del dominio: " & wshNetwork.UserDomain
    MsgBox "Nombre de usuario: " & wshNetwork.UserName
    Set wshNetwork = Nothing
End Sub

Este código nos proporcionará información del nombre del equipo, del dominio y del usuario.

Si quisiéramos acoplar el código del epígrafe anterior simplemente deberíamos hacer que la variable vUser se igualara a wshNetwork.UserName, combinando ambos códigos.

Si queréis bajaros la mini aplicación de ejemplo podéis hacerlo aquí. Recordad que no podréis entrar en la BD (a no ser que vuestro nombre de usuario coincida con los que hay dados de alta en la tabla TUsers). Para abrirla como administrador debéis mantener la tecla mayúsculas (shift) pulsada al tiempo que se abre la BD.

Espero que lo anterior os sea de utilidad.

Un saludo, y...

¡suerte!

Tuesday the 27th. Joomla 2.5 Templates. Neckkito's baby 2012 --- Hosted by: www.siliconproject.com.ar
Copyright 2012

©