Manual de Bienvenida a la Forja Versión: 1.0.0



Documentos relacionados
Universidad Nacional de Costa Rica Administración de Bases de Datos

Base de datos Oracle: Arquitectura Oracle. Arquitectura. Marzo Luis Vinuesa Martínez

Como instalar un portal Joomla en su página web. Sync-Intertainment

Manual de Instalación en Ubuntu

Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA:

1Introducción. 2Componentes de la Instalación. A. Requisitos. Cliente. Servidor

CONFIGURACION DEL REPOSITORIO DE DESIGNER/2000

A. Instalación de Mininet

Ubuntu Server HOW TO : UBUNTU SERVER EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar un servidor de ubuntu.

Administración de usuarios en Oracle - Administración de Oracle - Orasite.com

Administración Básica de Oracle9i 1ªEdición Noviembre 2004.

Tema: Introducción a Oracle

Servicios en Red. Tema 4 SSH. Conexión segura a un servidor SSH GNU/Linux

Memoria de Prácticas. Servicios Web

Manual de instalación y configuración de Plataforma de Participación Ciudadana (PAC) Versión 3.0

TALLER PHP + POSTGRES (CONEXIÓN)

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS. 2º ASIR. CURSO 17/18 NFS... 2 INTRODUCCIÓN. NFS... 2 HISTORIA... 2 INSTALACIÓN... 2

Documentación para desarrolladores

Administración Básica de Oracle9i.

Replicación de datos en MySQL

Forjas de Software y repositorios de código en la nube

Guía de usuario Plataforma de alojamiento web

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

IAW - Práctica 1: LAMP Stack IES Celia Viñas (Almería) /2018

Administrar un repositorio Git con Gogs

Servidor FTP en Windows 2003 Server. Servicios en Red. Emilio Iniesta Valero 1

Administración de Oracle 9i. Existen alrededor de 126 privilegios del sistema, a continuación vemos los más destacados

Como instalar una tienda virtual en su página web (OssCommerce) Sync-Intertainment

Módulo Call Center. Guía de instalación v 1.2

Acceso a una instancia de base de datos (RDS) desde ECS

Como instalar Un Foro con phpbb en Linux Canaima

Práctica 3. MySQL WorkBench JOSÉ JUAN SÁNCHEZ HERNÁNDEZ

Asceta. Guía de instalación

Manual de Instalación y Configuración

Consejería de Hacienda y Administración Pública. Alta de aplicaciones en la plataforma. Versión: v01r01 Fecha: 01/06/2011

Configuración de MySQL con NetBeans

ESPECIFICACIÓN DE LOS REQUERIMIENTOS FUNCIONALES

Creación de Servicios de Bases de Datos Oracle ORACLE ACS

SERVICIOS DE TRANSFERENCIA DE FICHEROS. ACTIVIDAD 1. Creación de un servidor FTP para el Departamento de Lengua del IES Montes Claros.

MANUAL WinPoET 1/31. MANUAL WinPoET

Sistema de Convenios y transferencias SISCOT. Protocolo de Instalación

1. Primero abrimos el aplicativo pgadmin con el cual manejaremos la base de datos de Postgres.

Guía de instalación de CivilFEM for ANSYS 17.1

INSTALAR WORDPRESS EN DEBIAN

INSTALACIÓN Y CONFIGURACIÓN SERVIDOR DE BASES DE DATOS POSTGRESQL EN FEDORA SERVER 24 BRAYAM ALBERTO MORA ARIAS COD: PRESENTADO A:

Manual de Usuario.

Installing_elecworks_ES (Ind : M) 05/10/2017. elecworks. Guía de instalación

RESTRICCIONES DE DOMINIOS

Guía del dispositivo de Bomgar B200 TM. Índice. BOMGAR BASE 3 Guía del dispositivo B200

Aplicación Android para el acceso a un SGBD con servicios de seguridad

INSTALACION DE LA BASE DE DATOS

Contenidos. 1 Aspectos de seguridad 2 El Sistema de Privilegios 3 Conexión n al servidor 4 Control de Acceso 5 Ejercicios

Configuración de Filezilla FTP. Sync-Intertainment

Acceso remoto a una máquina GNU/Linux (Ubuntu)

Página Web Biblioteca

Capítulo 6. Otros objetos de la base de datos

Garan5a y Seguridad en Sistemas y Redes

FTP y Telnet. FTP /// Protocolo de transferencia de archivos (protocol transfer files) :) TELNET /// Emulador de terminales en sistemas remotos.

Instalación Componente Cliente

MANUAL DE AYUDA INSTALACIÓN SOFTWARE

Puntos estimados: 1.0 Iteración asignada: 1. Programador responsable: Camilo Urrego Carlos Suárez Descripción:

MANUAL DE USO Servidor de Cálculo TAYLOR Tabla de contenido

Mª DOLORES CARBALLAR FALCÓN L

CÓMO CREAR UNA BASE DE DATOS MySQL PARA PRACTICAR CON PHP. ACCESO AL GESTOR phpmyadmin. (CU00839B)

Como instalar Geonetwork

CONTROL DE ACCESO. curso 2008

Descarga e Instalación de Java Development Kit (JDK)

COPYRIGHT El copyright de este documento es propiedad de Camerfirma.

Conexión segura al Laboratorio

Clients. PPPoE Clients WINDOWS 7

MANUAL DE REFERENCIA DE INSTALACIÓN RÁPIDA SISTEMA DE CONTROL DE ASISTENCIAS DE PERSONAL ON THE MINUTE VERSION 4.0

ServiceTonic. Guía de instalación

Instalación de MySQL.

Guías Técnicas de Interoperabilidad. Anexo G12-A01. Manual de eliminación de ambiente. Fecha: 03 de febrero de 2016

6.1. Introducción. Guía 5. SQL.

SERVIDOR WEB EN WINDOWS SERVER

INSTALACION Y CONFIGURACION OPENSTACK. La instalación de OpenStack se realiza sobre el sistema operativo Ubuntu LTS Desktop.

Comparación Windows - Linux: El Sistema de Archivos en Linux organiza los ficheros en carpetas con una estructura jerárquica similar a Windows.

ServiceTonic - Guía de Instalación ] ServiceTonic. Guía de instalación GUÍA DE INSTALACIÓN

InterBase / Firebird: el uso de eventos

How to 5 Creación de usuarios y grupos

Configuración del driver cliente ODBC

Instalación de corebos CRM

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

UNIVERSIDAD TECNOLOGICA IZUCAR DE MATAMOROS TICSI SISTEMAS OPERATIVOS LIC. EDITH VARGAS MORALES ALUMNA: DURÁN VARGAS CLAUDIA MATRICULA:

UNIVERSIDAD TÉCNICA DEL NORTE

1.Configure un servidor NTP en GNU/Linux. Conecte un cliente NTP en Windows o GNU/Linux.

MVH INGENIEROS S.A.C MANUAL DE INSTALACION SOFTWARE DE MONITOREO CACTI. Versión 1.0

Guía Rápida. Aprende lo básico y lo no tan básico de Raspberry pi

TEMA 3: IMPLANTACIÓN DE TÉCNICAS DE ACCESO REMOTO. Victor Martin

Desarrollo Web en Entorno Servidor

ANEXO B MANUAL TÉCNICO. Definir claramente el procedimiento de instalación del aplicativo.

EL SERVICIO WEB. ACTIVIDAD 1. Creación de un servidor Web para la empresa Informática Solutions S.A. con Windows Server 2008.

Instalación. La parte de cliente está instalado por defecto en todas las distribuciones. Quiere decir:

Tema 5 Sistemas Operativos En Red. Ejercicio 6 Realizar copia de seguridad, Windows Server 2008.

Redes de área local: Aplicaciones y servicios

Copias de seguridad. WhitePaper Abril de 2016

Apache2, sitios virtuales y SSL APUNTES ASIR JOHN ALEXANDER MONTES LOPEZ

Transcripción:

Manual de Bienvenida a la Forja Versión: 1.0.0 Este documento pretende familiarizar al lector con todos los servicios que ofrece la forja de gvhidra de la Dirección General de Tecnologías de la Información (en adelante DGTI) de la Generalitat Valenciana. Si estás leyendo este documento es porque debes haber recibido (o recibirás en breve) las credenciales de acceso a dicha forja. En primer lugar, aclararemos que es la forja, los proyectos que alberga y la accesibilidad de los mismos. La forja es un conjunto de servicios que se ofrecen para facilitar el desarrollo colaborativo de los proyectos gvhidra. Con estos servicios se pretende ayudar a los diferentes equipos de desarrollo y fomentar la colaboración entre los mismos. La forja está destinada para albergar proyectos desarrollados con el framework gvhidra en el ámbito de la DGTI, el propio framework y sus proyectos auxiliares. En relación a los servicios, la forja ubicada en la máquina http://gvhidra.gva.es está abierta a internet y ofrece: Gestión de identidad unificado: mediante LDAP Gestor de tickets: mediante Redmine Control de versiones: mediante SVN Foro/Wiki Gestor de documentos Gestor de Archivos y/o Documentos Gestor de Noticias Calendario Gantt Planificación de versión Lista de correo de gvhidra Formación: Cursos, talleres,... Es importante destacar el que todos los proyectos son por definición de acceso privado excepto el framework (proyecto gvhidra), el generador (proyecto Genaro) y la aplicación de prueba (proyecto Demo). Esto significa que sólo los usuarios autorizados y con permisos en el proyecto podrán acceder a la información, código, ficheros,... De forma opcional, la DGTI ofrece un entorno de desarrollo de aplicaciones gvhidra que puede ser utilizado para desarrollar aplicaciones dentro de dicho ámbito. Este entorno se encuentra ubicado en la máquina http://gvhidra test.gva.es y sólo está disponible en el anillo de la Generalitat Valenciana y a 1

aquellas IPs que lo soliciten. Ofrece los siguientes servicios: Servidor Web: Apache PHP Puerto 80 PHP 5.2.17 Puerto 83 PHP 5.3.17 Puerto 84 PHP 5.4.7 Proximamente Puerto 85 PHP 5.5 SGBD Puerto 5432 Postgres Puerto 1521 Oracle Puerto 3306 MySQL SSH Posteriormente, daremos las instrucciones de uso para conectar con este entorno de desarrollo. 2

Alta de nuevo proyecto en gvhidra Para solicitar un nuevo proyecto, el responsable del mismo se debe poner en contacto con el responsable de aplicaciones gvhidra de la DGTI, Juan Carlos Hernandez Comes (hernandez_juacom@gva.es). Tal y como se ha explicado en el apartado anterior, se creará la infraestructura básica para albergar el proyecto en la forja. En esta petición se debe detallar: Nombre del proyecto Miembros (identificando su rol entre Jefe de Proyecto, Desarrollador, Informador). Si requiere entorno de desarrollo Usuarios que tengan acceso al código. Ips en el anillo de la GVA SGBD si se conoce. Una vez tramitada la petición se creará la infraestructura y se informará al Jefe del proyecto vía email. Éste podrá validarse en la forja (http://gvhidra.gva.es) y deberá completar la configuración del proyecto a través de la pestaña Configuración. Información Permite gestionar la información general del proyecto como la descripción, las versiones del framework, el sistema de autentificación o el de autorización. En esta pestaña cabe destacar: Descripción: es un campo típico donde ubicar la finalidad del proyecto. Es importante tener cumplimentado este campo para, de forma rápida, poder conocer el propósito de la aplicación. Público: este check viene desmarcado por defecto ya que haría que este proyecto pudiera verse por cualquier usuario de internet. Es poco recomendable activarlo. Versiones de gvhidra, Jasper, Autentificación y Autorización. Esta información es muy importante para, conocer los sistemas con los que se integra la aplicación. Módulos Permite activar/desactivar módulos para este proyecto. Esto permite añadir o quitar funcionalidades como noticias, Gantt, gestión de peticiones,... 3

Miembros En este apartado aparecen los miembros que tienen acceso al proyecto. Esta información tiene como fuente el LDAP centralizado que unifica los accesos a la plataforma. Lo que podemos hacer en este apartado es asignar o quitar roles a un miembro. Estos roles son: Jefe de Proyecto: este rol permite acceder a la pestaña de Configuración del proyecto en el Redmine. Desarrollador: este rol da acceso lectura/escritura al código (mediante el SVN). Informador: permite acceder al proyecto, pero sin acceso al código. Si el acceso Web al repositorio mediante redmine está habilitado podrá navegar en modo lectura. IMPORTANTE: añadir o borrar miembros debe comunicarse abriendo una incidencia en el proyecto Soporte de la forja. Versiones Esta solapa permite gestionar las diferentes versiones de la aplicación. Una buena estratégia de versiones nos permite gestionar de forma más eficiente el proyecto para planificar qué cambios entra en una versión concreta. Categorías de las peticiones Permite añadir nuevos tipos de peticiones para el proyecto. Poco utilizado Wiki Permite configurar una Wiki para el proyecto. Repositorio Permite configurar un acceso web avanzado sobre el repositorio del control de versiones. Decimos que es avanzado porque permite realizar comparaciones entre diferentes versiones de un fichero, visualizar la fecha del último cambio en una rama, Para configurar dicho acceso se debe indicar la ubicación del control de versiones. Para configurar el repositorio de gvhidra debemos indicar: SCM: SVN URL: http://gvhidra.gva.es/svn/proyecto Identificador: identificador de un usuario con acceso al código. Contraseña: password de un usuario con acceso al código. Nota: las credenciales son las credenciales de la forja. Nota2: pulsar varias veces el botón Guardar para garantizar que se almacena la información Foros Permite configurar un foro para el proyecto. Una vez configurado, ya podemos hacer uso del proyecto. Cabe destacar que la mayor parte de los servicios se ofrecen desde Redmine. Sin hacer uso de él podemos utilizar: Control de versiones: para configurar el control de versiones tenemos que indicar la como ruta del repositorio http://gvhidra.gva.es/svn/proyecto. Sólo accederán a él los usuarios con Rol desarrollador en el proyecto. 4

Portal de gvhidra (www.gvhidra.org): En esta página podemos encontrar información general del framework así como documentos relativos a cursos, talleres, ejemplos que pueden ser útiles a los desarrolladores. Lista de correo: esta lista es de gran utilidad para los desarrolladores de aplicaciones con el framework. Se puede acceder a ella en modo consulta a través de Nabble http://gvhidra.3754916.n2.nabble.com/. En caso de querer participar en la comunidad es necesario suscribirse http://listserv.gva.es/cgi bin/mailman/listinfo/gvhidra_soporte. 5

Acceso al entorno de desarrollo en gvhidra test.gva.es Como hemos explicado anteriormente, para el desarrollo de los nuevos proyectos, opcionalmente, la DGTI proporciona un entorno de desarrollo en la máquina gvhidra test.gva.es. El uso de este entorno es opcional pudiéndose montar otro entorno en otra infraestructura (caso de, por ejemplo la CITMA). Para poder acceder a él se debe solicitar a través de una petición en el proyecto Soporte indicando información acerca de las personas que se van a conectar: Usuario de la forja Ip dentro del anillo de la Generalitat Valenciana. Una vez realizados los trámites, se debe tener acceso desde la máquina cliente al servidor gvhidra test.gva.es. Instalación de herramientas en la máquina de desarrollo de cada miembro del proyecto Los desarrolladores del proyecto deberán tener instaladas varias herramientas necesarias para el desarrollo con gvhidra. Básicamente son: Un IDE de desarrollo: recomendamos Eclipse, aunque también se pueden utilizar otros. Si procede, Plugin de PHP para el IDE seleccionado. Si procede, Plugin de SVN para el IDE seleccionado. Un IDE interactuar con la Base de Datos: recomendamos TOAD, pgadminiii, SQLDeveloper o SQuirrel (dependiendo de la Base de Datos y las preferencias). Si la aplicación requiere informes, instalar ireports en la versión recomendada por el proyecto jasper (actualmente 4.5.1) A continuación se muestra el diagrama BPMN con las tareas a realizar por cada desarrollador para conseguir un entorno de trabajo adecuado: La instalación de estas herramientas sale del ámbito de este documento ya que se trata de una simple recomendación. Una vez instaladas, éstas o sus equivalentes, pasaremos a la configuración. Configuración de la conexión máquina de desarrollo al servidor Una vez instaladas las herramientas, tendremos que acceder a la máquina de desarrollo. Para trabajar con 6

ella, recomendamos realizar una conexión vía sshfs que permita montar de forma segura una carpeta remota. En el siguiente diagrama mostramos los pasos a realizar para realizar dicha conexión: Las tareas concretas a realizar son las siguientes: La maquina (servidor) que va a utilizarse es gvhidra test.gva.es. Cada programador que quiera usarla como máquina de desarrollo, tendrá que tener cuenta en la misma y acceso desde la IP desde la que trabaje, por convenio, se ha decidido que el usuario sea el prefijo de la cuenta de correo (en el ejemplo, pascual_dav). Lo siguiente es conseguir conectarse por ssh a la máquina gvhidra test.gva.es sin necesidad de introducir el password. Para ello, supongamos que la máquina (PC) desde la que vamos a conectar (dpascual.coput.gva.es) tiene un usuario dpascual. Podemos encontrarnos con dos situaciones: 1 1. El usuario dpascual NO tiene generados un par de claves (pública y privada) una clave RSA : a. Generar las claves privada y pública para permitir el montaje de la carpeta del servidor a través de un protocolo cifrado y sin uso de contraseñas. b. Si queremos generar una clave nueva diferente de las que ya tenemos, deberemos borrar antes los ficheros de las claves públicas y privadas, y ejecutar el comando para eliminar la entrada del servidor remoto que teníamos en el fichero known_hosts: pc$ ssh keygen R gvhidra test.gva.es c. Ejecutar UNA SOLA VEZ los siguientes comandos en el cliente para generar las claves 2 pública y privada del usuario. Cuando pregunte por el passphrase, poner un texto vacío. Para generar los ficheros: pc$ cd $HOME/.ssh pc$ ssh keygen t rsa 2. El usuario dpascual YA tiene generados un par de claves (pública y privada) una clave RS, bien porque viene del punto anterior, o porque ya se hizo en otra ocasión: a. Llevamos los ficheros a la máquina (servidor) al que queremos conectarnos sin password. pc$ scp /home/dpascual/.ssh/id_rsa.pub pascual_dav@gvhidra test.gva.es:~/ b. Nos conectamos a gvhidra test.gva.es y completamos el proceso pc$ ssh pascual_dav@gvhidra test.gva.es password: [La conexión se realiza, es decir, ya estamos en gvhidra test.gva.es] test$ cd ~/ 1 Para comprobar si se ha hecho previamente, validar que en el directorio $HOME/.ssh del PC no tenemos ningún fichero con extensiçon.pub. 2 Cada vez que se ejecuta este comando, se generará una clave privada y otra pública (la segunda dependiente de la primera). Si varía alguna de ellas (tras una reinstalación) dejaría de funcionar en los servidores en los que se hubiera instalado la clave pública ya creada. 7

test$ mkdir.ssh test$ cd.ssh test$ cat >../id_rsa.pub >authorized_keys2 test$ cat../id_rsa.pub >> authorized_keys2 c. Comprobamos que los permisos sean los correctos test$ ls la rw r r 1 pascual_dav pascual_dav 240 2012 06 13 17:27 authorized_keys2 d. Borramos la clave pública del directorio superior y nos desconectamos del servidor test$ cd ~/ test$ rm id_rsa.pub test$ exit pc$ Tanto si hemos necesitado pasar por el punto 1, o si sólo hemos realizado el punto 2, ahora simplemente queda comprobar que la conexión sin password puede establecerse: pc$ ssh pascual_dav@gvhidra test.gva.es Linux gvhidra test 2.6.32 33 server #72 Ubuntu SMP Fri Jul 29 21:21:55 UTC 2011 x86_64 GNU/Linux Ubuntu 10.04.3 LTS Welcome to the Ubuntu Server! Si al ejecutar el ssh aparece este error: Agent admitted failure to sign using the key. Hay que ejecutar en la máquina local el comando ssh add que carga las claves en el agente ssh: pc$ ssh add Identity added: /home/usuario/.ssh/id_rsa (/home/usuario/.ssh/id_rsa) Lo siguiente es preparar el montaje en local del directorio correspondiente del usuario, para ello, nos conectamos a la máquina gvhidra test.gva.es con nuestro usuario y creamos en el directorio HOME del mismo la jerarquia de directorios: public_html/svnwrk. Dentro de dicho directorio irá ubicado el código fuente de la aplicación. La URL será: http://gvhidra test.gva.es/~pascual_dav/svnwrk/ Variando el usuario (en el ejemplo pascual_dav) por el equivalente de cada usuario. Para montar la unidad podemos partir del siguiente SCRIPT #Montaje de unidades de RED DESADIR=$HOME/mnt_gvHidraTest/ echo "Inicio de sesión > Montaje de unidades de red" #Comprobamos si YA esta montado el directorio if [ f $DESADIR/desarrollo ] then echo "Directorio public_html de Gardel ya montado " else echo "Montando directorio desarrollo..." if sshfs pascual_dav@gvhidra test.gva.es:/home/pascual_dav/public_html \ $DESADIR oreaddir_ino,workaround=rename,direct_io,uid=$uid,gid =$GROUPS,ServerAliveInterval=15 then echo "Montaje de unidad de desarrollo completad o" else echo "Problemas al montar el directorio!!" fi fi 8

Montaje de unidades de RED #!/bin/bash #Montaje de unidades de RED DESADIR=/home/pascual_dav/mnt_gvHidraTest/ echo "Inicio de sesión > Montaje de unidades de red" #Comprobamos si YA esta montado el directorio if [ f $DESADIR/desarrollo ] then echo "Directorio public_html de GvHidra test ya montado " else echo "Montando unidad de desarrollo..." if sshfs pascual_dav@gvhidra test.gva.es:/home/pascual_dav/public_html /$DESADIR oreaddir_ino o workaround=rename o direct_io o uid=$uid o gid=$groups o ServerAliveInterval=15 then echo "Montando el directorio del servidor en $HOME/mnt_gvHidraTest"; fi else fi echo "Problemas al montar el directorio del servidor en $HOME/mnt_gvHidraTest!!"; En el caso de que se produzca error al intentar montar la unidad, si al conectarse a gvhidra test tenemos lo siguiente: lcanoc@lcanoc:~/bin$ ssh cano_lor@gvhidra test.gva.es Linux gvhidra test 2.6.32 45 server #101 Ubuntu SMP Mon Dec 3 15:54:27 UTC 2012 x86_64 GNU/Linux Ubuntu 10.04.3 LTS Welcome to the Ubuntu Server! * Documentation: http://www.ubuntu.com/server/doc System information as of Fri Jan 18 10:58:07 CET 2013 System load: 0.18 Processes: 224 Usage of /: 10.6% of 124.02GB Users logged in: 1 Memory usage: 42% IP address for eth2: 192.168.222.76 Swap usage: 0% Graph this data and manage this system at https://landscape.canonical.com/ New release 'precise' available. Run 'do release upgrade' to upgrade to it. *** System restart required *** Last login: Fri Jan 18 10:26:58 2013 from 172.19.18.49 bash: warning: setlocale: LC_ALL: cannot change locale (es_es@euro) y al ejecutar el script del montaje de la unidad da el siguiente error: SSHFS version 2.2 remote host has disconnected Revisar el fichero /etc/environment en local y si están las siguientes líneas: LC_ALL=es_ES@euro LANG="es_ES.UTF 8" LANGUAJE="es_ES:es:en_GB:en" LC_TYPE=es_ES@euro Se procede a comentarlas. Se reinicia el sistema y ya se debería de montar la unidad de desarrollo sin problemas. Al conectarse, se podrá comprobar que el usuario pertenece a los grupos de las aplicaciones en las que participe: pascual_dav@gvhidra test:~# groups Si se produce algún problema puede solicitar ayuda a través de proyecto de Soporte. Gestión de la base de datos La base de datos es algo particular de cada aplicación. En todo caso, para facilitar el desarrollo de esquemas robustos y previstos de conceptos básicos de seguridad sugerimos una serie de plantillas que 9

facilitarán el trabajo del responsable del proyecto. Simplemente se tiene que rellenar las plantillas correspondientes al SGBD elegido para nuestra aplicación. 10

PostgreSQL Adaptar la plantilla siguiente y ejecutarla conectándose al sistema como el usuario postgres. /*Creación del esquema */ CREATE SCHEMA <esq>; COMMENT ON SCHEMA <esq> IS '<comentario entorno>'; /* Creación del usuario propietario */ /* Sustituir <usu> por el nombre de usuario */ CREATE USER <usu> PASSWORD '<pwusu>'; ALTER USER <usu> VALID UNTIL 'infinity'; /* Creación de los usuarios de aplicación (uno por perfil) */ /* Sustituir <pwusu_ae> por el password para el usuario de lectura/escritura _ae */ /* Sustituir <pwusu_ac> por el password para el usuario de sólo lectura _ac */ CREATE USER <usu>_ae PASSWORD '<pwusu_ae>'; CREATE USER <usu>_ac PASSWORD '<pwusu_ac>'; ALTER USER <usu>_ae VALID UNTIL 'infinity'; ALTER USER <usu>_ac VALID UNTIL 'infinity'; /* Creación de los roles */ CREATE ROLE r<usu> ADMIN <usu>; CREATE ROLE r<usu>_c ADMIN <usu>; /* Asignar los roles a los usuarios */ GRANT r<usu> TO <usu>; GRANT r<usu> TO <usu>_ae; GRANT r<usu>_c TO <usu>_ac; /* Dar permisos al esquema para el usuario propietario y los roles */ GRANT ALL ON SCHEMA <esq> TO <usu> WITH GRANT OPTION; GRANT USAGE ON SCHEMA <esq> TO r<usu>; GRANT USAGE ON SCHEMA <esq> TO r<usu>_c; /* Si necesitan acceder a elementos de otros esquemas, se crea un rol intermedio, que el propietario administrará dando visibilidad y permisos a los objetos que desee */ /* Realizado por el administrador */ CREATE ROLE r<esq>_<otroesq1> ADMIN <usu>; ALTER ROLE <otrousu> SET search_path=<otroesq1>, <esq>; /* Realizado por el propietario del esquema */ GRANT USAGE ON SCHEMA <esq> TO <otrousu>; GRANT r<esq>_<otroesq1> TO <otrousu>; GRANT privilegio ON TABLE <esq>.<objeto> TO r<esq>_<otroesq1>; /* Asignar los search_path necesarios para los usuarios */ ALTER USER <usu> SET search_path = '<esq>','<otroesq1>','<otroesq2>'; ALTER USER <usu>_ae SET search_path = '<esq>','<otroesq1>','<otroesq2>'; ALTER USER <usu>_ac SET search_path = '<esq>','<otroesq1>','<otroesq2>'; /* Opcional: Creación de infraestructura de LOG */ CREATE TABLE <esq>.tcmn_errlog ( iderror numeric(9,0) NOT NULL, 11

aplicacion character varying(30) NOT NULL, modulo character varying(10), version character varying(10) NOT NULL, usuario character varying(30) NOT NULL, fecha timestamp without time zone NOT NULL, tipo numeric(2,0) NOT NULL, mensaje text NOT NULL ); ALTER TABLE <esq>.tcmn_errlog OWNER TO <esq>; GRANT ALL ON TABLE <esq>.tcmn_errlog TO r<esq>; CREATE SEQUENCE <esq>.scmn_id_errlog START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER TABLE <esq>.scmn_id_errlog OWNER TO <esq>; GRANT ALL ON SEQUENCE <esq>.scmn_id_errlog TO r<esq>; 12

Para Oracle 3 Adaptar la plantilla siguiente y ejecutarla conectándose al sistema como el usuario system Creación tablespace para aplicación, autogestionado pero limitado CREATE TABLESPACE <esq>_tbl DATAFILE '/<path_datos_aplicaciones>/<esq>_tbl.dbf' SIZE 50M AUTOEXTEND ON NEXT 10M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; Creación tablespace para índices de aplicación, autogestionado pero limitado CREATE TABLESPACE <esq>_idx DATAFILE '/<path_datos_aplicaciones>/<esq>_idx.dbf' SIZE 50M AUTOEXTEND ON NEXT 10M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; Creación usuario propietario CREATE USER <esq> IDENTIFIED BY <pwusu> DEFAULT TABLESPACE <esq>_tbl TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK; ALTER USER <esq> DEFAULT ROLE ALL; GRANT CREATE SESSION TO <esq>; Permisos mínimos para el propietario de los objetos(opción: Agrupar en un ROL de propietario) GRANT CREATE ANY SYNONYM TO <esq>; Pendiente de solución más segura GRANT SELECT_CATALOG_ROLE TO <esq>; / GRANT CREATE TABLE TO <esq>; GRANT CREATE TRIGGER TO <esq>; GRANT CREATE VIEW TO <esq>; GRANT CREATE MATERIALIZED VIEW TO <esq>; GRANT CREATE SEQUENCE TO <esq>; GRANT CREATE ROLE TO <esq>; Para creación de roles entre aplicaciones Quotas sobre tablespaces ilimitadas puesto que el tablespace está limitado ALTER USER <esq> QUOTA UNLIMITED ON <esq>_tbl; ALTER USER <esq> QUOTA UNLIMITED ON <esq>_idx; Creación usuario de aplicación escritura CREATE USER <esq>_ae IDENTIFIED BY <pwusu>_ae DEFAULT TABLESPACE <esq>_tbl TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK; ALTER USER <esq>_ae DEFAULT ROLE ALL; GRANT CREATE SESSION TO <esq>_ae; Creación usuario de aplicación lectura CREATE USER <esq>_ac IDENTIFIED BY <pwusu>_ac DEFAULT TABLESPACE <esq>_tbl 3 En el ejemplo que estamos siguiendo <path_datos_aplicaciones>=/u01/app/oracle/oradata/xe/apps y <esq>=sedes 13

TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK; ALTER USER <esq>_ac DEFAULT ROLE ALL; GRANT CREATE SESSION TO <esq>_ac; Creación de roles para esquema (Un rol con permisos de CRUD y otro solo lectura) CREATE ROLE r<esq>; CREATE ROLE r<esq>_c; Asignación de rol con opción de administrar al propietario, para que pueda aplicarlo a roles (roles sobre roles para integración de aplicaciones) GRANT r<esq> TO <esq> WITH ADMIN OPTION; GRANT r<esq>_c TO <esq> WITH ADMIN OPTION; Esta asignación la puede hacer el propietario, pero se hace ya. GRANT r<esq> TO <esq>_ae; GRANT r<esq>_c TO <esq>_ac; Si necesitan acceder a elementos de otros esquemas, asignar permisos para que el propietario y los usuarios de la aplicación puedan ver los mismos GRANT <otroesq_1>, <otroesq_2> TO <esq>_ae; GRANT <otroesq_1>_c, <otroesq_2>_c TO <esq>_ac; AQUÍ VIENE EL DDL DE CREACIÓN DE OBJETOS YA CONECTADO COMO USUARIO PROPIETARIO Asignación de permisos sobre objetos para el rol r<esq> (A ejecutar el resultado de la consulta por el propietario) SELECT 'GRANT DELETE, INSERT, SELECT, UPDATE ON <esq>.' TABLE_NAME ' TO r<esq>;' FROM ALL_TABLES WHERE OWNER=upper('<esq>'); Asignación de permisos sobre objetos para el rol r<esq>_c (A ejecutar el resultado de la consulta por el propietario) SELECT 'GRANT SELECT ON <esq>.' TABLE_NAME ' TO r<esq>_c;' FROM ALL_TABLES WHERE OWNER=upper('<esq>'); Creación de sinónimos privados para visibilidad por usuarios no propietarios (A ejecutar el resultado de la consulta por el propietario) SELECT 'CREATE SYNONYM <esq>_ae.' TABLE_NAME ' FOR <esq>.' TABLE_NAME ';' FROM ALL_TABLES WHERE OWNER=upper('<esq>'); SELECT 'CREATE SYNONYM <esq>_ac.' TABLE_NAME ' FOR <esq>.' TABLE_NAME ';' FROM ALL_TABLES WHERE OWNER=upper('<esq>'); 14

Opcional: Creación de infraestructura de LOG CREATE TABLE <esq>.tcmn_errlog ( iderror integer NOT NULL, aplicacion varchar2(30) NOT NULL, modulo varchar2(10) default NULL, version varchar2(10) NOT NULL, usuario varchar2(30) not null, fecha timestamp default SYSDATE, tipo varchar(10) NOT NULL, mensaje CLOB NOT NULL ); ALTER TABLE <esq>.tcmn_errlog add constraint pk_<esq>_error primary key(iderror); CREATE SEQUENCE <esq>.scmn_id_errlog minvalue 1 start with 1 increment by 1 cache 20; CREATE SYNONYM <esq>_ae.scmn_id_errlog FOR <esq>.scmn_id_errlog; CREATE SYNONYM <esq>_ae.tcmn_errlog FOR <esq>.tcmn_errlog; GRANT ALL ON <esq>.tcmn_errlog to r<esq>; GRANT ALL ON <esq>.scmn_id_errlog to r<esq>; 15