sábado, 31 de agosto de 2013

Modulo de Control de Acceso - Primera Fase

En este apartado pretendo explicar el modelo y diseño de la base de datos del modulo de control de accesos:

Modulo de control de acceso. La importancia de este modulo o sistema si es que así pretendemos llamarlo es para proteger la confidencialidad, integridad y disponibilidad de la información, el activo más importante de una organización, pues permiten que los usuarios autorizados accedan solo a los recursos que ellos requieren e impide que los usuarios no autorizados accedan a recursos.

Requisitos para esta primera fase es:
  1. SQL Developer Data Modeler - ORACLE.
  2. SQL Server 2008
IMAGEN N° 1
El SQL Developer Data Modeler - ORACLE lo pueden conseguir en la siguiente url  de página de Oracle, es una muy buena alternativa para poder realizar un buen modelamiento y diseño de base de datos. Además encontraras información al respecto en dicho url.

Consideraciones:
Los atributos de las entidades a especificar son reales para el desarrollo que pretendo realizar, pero si ustedes desean pueden adaptarlo a sus necesidades.

Los campos seleccionados en la IMAGEN N° 1, son campos de AUDITORIA, excepto el campo STS_REGISTRO dicho campo especifica estado del registro NO el estado del MODULO, tener en cuenta que son REGISTROS diferentes.

Las especificaciones o explicaciones breves iniciaremos a partir de la tablas modulo, la lectura del modelamiento ya se los dejo a su criterio de cada unos de ustedes. Así que iniciamos con las breves explicaciones en cuento a nuestras entidades que involucran con dicho modelamiento y diseño de base de datos:

ENTIDADES:
  1. MODULO
  2. SUB MODULO
  3. OBJETO
  4. ACCESO
  5. ACCIÓN
  6. ROL
  7. USUARIO ROL
  8. USUARIO
MODULO:
Se encarga de registrar el código ID de dicha entidad, la DESCRIPCIÓN DEL MODULO, ruta del MANUAL O DOCUMENTACIÓN que pueda existir al crear el modulo y el ESTATUS DEL MODULO.

SUB MODULO:
Se encarga de registrar el código ID de dicha entidad, la DESCRIPCIÓN DEL SUB MODULO, ruta del MANUAL O DOCUMENTACIÓN que pueda existir al crear el sub modulo y el ESTATUS DEL SUB MODULO.


En ambas entidades generar nuestra primera relación entre sí, recordemos que el campo ID es nuestra llave primaria. Ver IMAGEN N° 2.


IMAGEN N° 2
OBJETO:
Se encarga de registrar el código ID de dicha entidad, la DESCRIPCIÓN, la RUTA DE OBJETO, la IMAGEN PRINCIPAL DE IDENTIFICACIÓN DEL OBJETO. Con exactitud esta entidad se encarga de almacenar todas las paginas y ventanas que involucran en los demás modulos de un sistema integrado web o cliente servidor, dependiendo en el caso que se encuentren. Además, ustedes pueden llamar según sus criterios que desean llamarlo o de acuerdo a sus desarrollos que estén realizando o por realizar.

ACCESO:
Se encarga de registrar el código ID de dicha entidad, el ESTATUS DEL ACCESO, el ROL DE ACCESO, el ID de la entidad OBJETO a la cual se brindar acceso con ciertos criterios o roles, además registra el ID de la ACCIÓN que  pueda realizar dicho usuario que cuenta con tal acceso asignado.

ACCIÓN:
Se encarga de registrar el código ID de dicha entidad, la DESCRIPCIÓN de la acción, el ESTATUS de la acción. Las acciones que se pueda realizar son como el insertar, modificar, eliminar, exportar, importar, entre otras acciones que se puedan darse en cualquier OBJETO (recordemos que son las page o windows forms).

ROL:
Se encarga de registrar el código ID de dicha entidad, la DESCRIPCIÓN del rol, el ESTATUS del rol. Recordemos que el rol de acceso es diferente al acceso que podemos tener dentro de una interfaz o modulo de un sistema integrado, la entidad ROL interactúa con el Usuario del sistema que es un rol predefinido que incluye tareas que permiten a los usuarios realizar acciones ya definidas según el acceso y rol que se determina.
IMAGEN N° 3
USUARIO ROL:
Se encarga de registrar el código ID de dicha entidad, el ESTATUS del usuario rol, el ID DEL USUARIO y el ID ROL. Recordemos que en esta entidad no se registra la información del usuario, se encarga de definir el rol a la cual pertenecerá el usuario que se registra.

USUARIO:
Se encarga de registrar el código ID de dicha entidad, el nombre del USUARIO, el PASSWOR y el ESTATUS del usuario.
IMAGEN N° 4
Recordemos la importancia de un modulo de control de acceso es brindar mayor fiabilidad en el manejo de las operaciones que se realiza en cualquier otro modulo que puede ser modulo de contabilidad, tesorería, entre otros. 


MODELO Y DISEÑO COMPLETO
IMAGEN N° 5
La entidad ACCIÓN es la única entidad que solo depende de la entidad ACCESO. Las demás entidades depende entre si, hasta tener una determinada relación entre ellas que el uno depende del otro.

Para cerrar esta primera fase generaremos las DDL (lenguaje de definición de datos) para SQL Server 2008 de nuestro diagrama creado.

Entidades de las cuales generaremos sus respectivos Script - SQL Server 2008
Script Generado para SQL Server 2008

Crear la base de datos y ejecutar el Script en el SQL Server 2008

Diagrama de base de datos en SQL Server 2008
Con esto finalizamos la primera fase del modulo de control de acceso. En el siguiente apartado crearemos nuestros procedimiento almacenados, funciones entre otros objetos a nivel de base datos, así mismo iniciaremos el desarrollo de la aplicación de la misma. Espero que sea de gran utilidad, nos vemos en el siguiente apartado.

sábado, 5 de enero de 2013

Problema al crear diagrama de base de datos en SQL SERVER

En este pequeño tutorial les quiero dejar la solución acerca del problema del ALTER AUTHORIZATION al crear los generar los diagramas ya existe o al querer generar por primera vez, en realidad esto aplica para cualquiera de las ediciones del SQL SERVER, en lo personal lo conozco este problema desde la versión del SQL SERVER 2005, 2008 y últimamente lo acabo de ver en la versión del 2015. 

Este es el error en pantalla que nos muestra:

Los objetos de soporte del diagrama de base de datos no se pueden instalar. Esta base de datos carece de propietario válido. Para continuar, primero use la página Archivos del diálogo Propiedades de la base de datos o la instrucción ALTER AUTHORIZATION para establecer como propietario de la base de datos un inicio de sesión válida y después agregue los objetos de soporte del diagrama de base de datos.


Para solucionar este problema se debe seguir los siguientes pasos:
1.  Clic derecho en la base de datos de la cual quiere solucionar dicho problema.

2.  Estando en la venta de propiedades de la base de datos seleccionar la opción de paginas archivos y clic en el botón de la propiedad.

3.  Ahora debe seleccionar o examinar el usuario a la cual debe brindar la autorización necesaria - en mi caso sera el usuario SA.

Usuario seleccionado y clic en aceptar

4. Con todo lo realizado solo nos queda dar clic en aceptar.

5. Volvemos a actualizar la base de datos y generamos nuestros diagramas.

Esta es la solución más rápida que e podido encontrar o en el caso que no pudieran utilizar la opción de propiedades, puede ejecutar la siguiente sentencia que hará lo mismo.

Use tu_base_de_datos
go
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
En el caso que este con otro usuario diferente al SA, solo debes cambiarlo en el parámetro @loginame = N'sa'

Algo pequeño pero que nos saca de apuro, espero les sirva.