Por Deiby Gómez Robles e Yenugula Venkata RaviKumar (OCM)
Publicado en Marzo 2014
Indice:
Introducción: En la primera parte de este articulo se explicó por qué es muy importante la implementación de la seguridad en un ambiente de "Oracle Exadata Database Machine" para poder restringir el uso de los "Grid Disk" para determinadas bases de datos o clústeres de ASM y así mismo se dio a conocer el procedimiento que se realiza para implementar la seguridad a nivel de ASM. En este nuevo artículo continuaremos con la demostración de cómo implementar la seguridad a nivel de Base de Datos.
Restringir a ciertas bases de datos el acceso a algunos "Exadata Cell" y ciertos "Grid Disk" es la seguridad más utilizada ya que en la mayoría de las organizaciones las bases de datos representan a una unidad de negocio, por ejemplo, el departamento de recursos humanos utiliza una base de datos diferente al departamento de reclutamiento, dejando así el requerimiento de restringir los datos de un departamento con los datos del otro. En otras organizaciones cada departamento tiene cierto presupuesto asignado por lo que no todos los departamentos pueden hacer uso de los discos que deseen para el almacenamiento de sus datos, dejando así el requerimiento de que algunas bases de datos solo puedan usar ciertos discos. La implementación de la seguridad a nivel de la base de datos representa un nivel de granularidad más fino que la seguridad a nivel de ASM puesto que un clúster de ASM puede afectar a varias bases de datos.
Configuración de Seguridad a nivel de Base de Datos
Ambiente utilizado:
A continuación se demostrará como se realiza una implementación de seguridad a nivel de Base de Datos, proporcionando accesos a los "Grid Disk" de los "Exadata Cell" Cell01 y Cell02.
[oracle@exadb01 ~]$ . oraenv ORACLE_SID = [xdbvm] ?+ASM The Oracle base remains unchanged with value /u01/app/oracle
[oracle@exadb01 ~]$ ps -ef | greppmon
oracle 2666 3392 0 08:32 pts/2 00:00:00 greppmon oracle 32261 1 0 06:20 ? 00:00:00 asm_pmon_+ASM oracle 32520 1 0 06:21 ? 00:00:00 ora_pmon_xdbvm [oracle@exadb01 ~]$ srvctl stop database -d xdbvm [oracle@exadb01 ~]$ srvctl stop diskgroup -g DATA [oracle@exadb01 ~]$ srvctl stop diskgroup -g RECO [oracle@exadb01 ~]$ srvctl stop asm [oracle@exadb01 ~]$ ps -ef | greppmon oracle 3167 3392 0 08:34 pts/2 00:00:00 greppmon
[celladmin@cell01 ~]$ servicecelld status Password: rsStatus: running msStatus: running cellsrvStatus: running [celladmin@cell01 ~]$ cellcli CellCLI: Release 11.2.3.2.1 - Production on Tue Dec 03 08:36:23 GMT+00:00 2013 Copyright (c) 2007, 2012, Oracle. All rights reserved. Cell Efficiency Ratio: 510 CellCLI> create key 5d961433bf2f41e4a7ed77db1b14d3a7
[oracle@exadb01 pfile]$ pwd /u01/app/oracle/admin/xdbvm/pfile [oracle@exadb01 pfile]$ vicellkey.ora [oracle@exadb01 pfile]$ catcellkey.ora xdbvm=5d961433bf2f41e4a7ed77db1b14d3a7 asm=+ASM [oracle@exadb01 pfile]$ chmod 640 cellkey.ora
CellCLI> assign key for xdbvm='5d961433bf2f41e4a7ed77db1b14d3a7' Key for xdbvm successfully created CellCLI> list key +ASM 8804b0e5bb8f6a4d10a0e17843e60c1 xdbvm 5d961433bf2f41e4a7ed77db1b14d3a7
CellCLI> alter griddisk DATA_CD_disk01_cell01,DATA_CD_disk02_cell01,DATA_CD_disk03_cell01, DATA_CD_disk04_cell01,DATA_CD_disk05_cell01,DATA_CD_disk06_cell01, DATA_CD_disk07_cell01,DATA_CD_disk08_cell01,DATA_CD_disk09_cell01, DATA_CD_disk10_cell01,DATA_CD_disk11_cell01,DATA_CD_disk12_cell01, RECO_CD_disk01_cell01,RECO_CD_disk02_cell01,RECO_CD_disk03_cell01, RECO_CD_disk04_cell01,RECO_CD_disk05_cell01,RECO_CD_disk06_cell01, RECO_CD_disk07_cell01,RECO_CD_disk08_cell01,RECO_CD_disk09_cell01, RECO_CD_disk10_cell01,RECO_CD_disk11_cell01,RECO_CD_disk12_cell01 availableTo='+ASM,xdbvm' GridDisk DATA_CD_disk01_cell01 successfully altered GridDisk DATA_CD_disk02_cell01 successfully altered GridDisk DATA_CD_disk03_cell01 successfully altered GridDisk DATA_CD_disk04_cell01 successfully altered GridDisk DATA_CD_disk05_cell01 successfully altered GridDisk DATA_CD_disk06_cell01 successfully altered GridDisk DATA_CD_disk07_cell01 successfully altered GridDisk DATA_CD_disk08_cell01 successfully altered GridDisk DATA_CD_disk09_cell01 successfully altered GridDisk DATA_CD_disk10_cell01 successfully altered GridDisk DATA_CD_disk11_cell01 successfully altered GridDisk DATA_CD_disk12_cell01 successfully altered GridDisk RECO_CD_disk01_cell01 successfully altered GridDisk RECO_CD_disk02_cell01 successfully altered GridDisk RECO_CD_disk03_cell01 successfully altered GridDisk RECO_CD_disk04_cell01 successfully altered GridDisk RECO_CD_disk05_cell01 successfully altered GridDisk RECO_CD_disk06_cell01 successfully altered GridDisk RECO_CD_disk07_cell01 successfully altered GridDisk RECO_CD_disk08_cell01 successfully altered GridDisk RECO_CD_disk09_cell01 successfully altered GridDisk RECO_CD_disk10_cell01 successfully altered GridDisk RECO_CD_disk11_cell01 successfully altered GridDisk RECO_CD_disk12_cell01 successfully altered
CellCLI> list griddisk attributes name, availableTo DATA_CD_disk01_cell01 +ASM,xdbvm DATA_CD_disk02_cell01 +ASM,xdbvm DATA_CD_disk03_cell01 +ASM,xdbvm DATA_CD_disk04_cell01 +ASM,xdbvm DATA_CD_disk05_cell01 +ASM,xdbvm DATA_CD_disk06_cell01 +ASM,xdbvm DATA_CD_disk07_cell01 +ASM,xdbvm DATA_CD_disk08_cell01 +ASM,xdbvm DATA_CD_disk09_cell01 +ASM,xdbvm DATA_CD_disk10_cell01 +ASM,xdbvm DATA_CD_disk11_cell01 +ASM,xdbvm DATA_CD_disk12_cell01 +ASM,xdbvm RECO_CD_disk01_cell01 +ASM,xdbvm RECO_CD_disk02_cell01 +ASM,xdbvm RECO_CD_disk03_cell01 +ASM,xdbvm RECO_CD_disk04_cell01 +ASM,xdbvm RECO_CD_disk05_cell01 +ASM,xdbvm RECO_CD_disk06_cell01 +ASM,xdbvm RECO_CD_disk07_cell01 +ASM,xdbvm RECO_CD_disk08_cell01 +ASM,xdbvm RECO_CD_disk09_cell01 +ASM,xdbvm RECO_CD_disk10_cell01 +ASM,xdbvm RECO_CD_disk11_cell01 +ASM,xdbvm RECO_CD_disk12_cell01 +ASM,xdbvm
[celladmin@cell02 ~]$ servicecelld status Password: rsStatus: running msStatus: running cellsrvStatus: running
[celladmin@cell02 ~]$ cellcli CellCLI: Release 11.2.3.2.1 - Production on Tue Dec 03 08:50:19 GMT+00:00 2013 Copyright (c) 2007, 2012, Oracle. All rights reserved. Cell Efficiency Ratio: 508 CellCLI> list key +ASM 8804b0e5bb8f6a4d10a0e17843e60c1 CellCLI> assign key for xdbvm='5d961433bf2f41e4a7ed77db1b14d3a7' Key for xdbvm successfully created CellCLI> list key +ASM 8804b0e5bb8f6a4d10a0e17843e60c1 xdbvm 5d961433bf2f41e4a7ed77db1b14d3a7
CellCLI> alter griddisk DATA_CD_disk01_cell02, DATA_CD_disk02_cell02, DATA_CD_disk03_cell02, DATA_CD_disk04_cell02, DATA_CD_disk05_cell02, DATA_CD_disk06_cell02, DATA_CD_disk07_cell02, DATA_CD_disk08_cell02, DATA_CD_disk09_cell02, DATA_CD_disk10_cell02, DATA_CD_disk11_cell02, DATA_CD_disk12_cell02, RECO_CD_disk01_cell02, RECO_CD_disk02_cell02, RECO_CD_disk03_cell02, RECO_CD_disk04_cell02, RECO_CD_disk05_cell02, RECO_CD_disk06_cell02, RECO_CD_disk07_cell02, RECO_CD_disk08_cell02, RECO_CD_disk09_cell02, RECO_CD_disk10_cell02, RECO_CD_disk11_cell02, RECO_CD_disk12_cell02 availableTo='+ASM,xdbvm'
GridDisk DATA_CD_disk01_cell02 successfully altered GridDisk DATA_CD_disk02_cell02 successfully altered GridDisk DATA_CD_disk03_cell02 successfully altered GridDisk DATA_CD_disk04_cell02 successfully altered GridDisk DATA_CD_disk05_cell02 successfully altered GridDisk DATA_CD_disk06_cell02 successfully altered GridDisk DATA_CD_disk07_cell02 successfully altered GridDisk DATA_CD_disk08_cell02 successfully altered GridDisk DATA_CD_disk09_cell02 successfully altered GridDisk DATA_CD_disk10_cell02 successfully altered GridDisk DATA_CD_disk11_cell02 successfully altered GridDisk DATA_CD_disk12_cell02 successfully altered GridDisk RECO_CD_disk01_cell02 successfully altered GridDisk RECO_CD_disk02_cell02 successfully altered GridDisk RECO_CD_disk03_cell02 successfully altered GridDisk RECO_CD_disk04_cell02 successfully altered GridDisk RECO_CD_disk05_cell02 successfully altered GridDisk RECO_CD_disk06_cell02 successfully altered GridDisk RECO_CD_disk07_cell02 successfully altered GridDisk RECO_CD_disk08_cell02 successfully altered GridDisk RECO_CD_disk09_cell02 successfully altered GridDisk RECO_CD_disk10_cell02 successfully altered GridDisk RECO_CD_disk11_cell02 successfully altered GridDisk RECO_CD_disk12_cell02 successfully altered
CellCLI> list griddisk attributes name, availableTo DATA_CD_disk01_cell02 +ASM,xdbvm DATA_CD_disk02_cell02 +ASM,xdbvm DATA_CD_disk03_cell02 +ASM,xdbvm DATA_CD_disk04_cell02 +ASM,xdbvm DATA_CD_disk05_cell02 +ASM,xdbvm DATA_CD_disk06_cell02 +ASM,xdbvm DATA_CD_disk07_cell02 +ASM,xdbvm DATA_CD_disk08_cell02 +ASM,xdbvm DATA_CD_disk09_cell02 +ASM,xdbvm DATA_CD_disk10_cell02 +ASM,xdbvm DATA_CD_disk11_cell02 +ASM,xdbvm DATA_CD_disk12_cell02 +ASM,xdbvm RECO_CD_disk01_cell02 +ASM,xdbvm RECO_CD_disk02_cell02 +ASM,xdbvm RECO_CD_disk03_cell02 +ASM,xdbvm RECO_CD_disk04_cell02 +ASM,xdbvm RECO_CD_disk05_cell02 +ASM,xdbvm RECO_CD_disk06_cell02 +ASM,xdbvm RECO_CD_disk07_cell02 +ASM,xdbvm RECO_CD_disk08_cell02 +ASM,xdbvm RECO_CD_disk09_cell02 +ASM,xdbvm RECO_CD_disk10_cell02 +ASM,xdbvm RECO_CD_disk11_cell02 +ASM,xdbvm RECO_CD_disk12_cell02 +ASM,xdbvm
Nota: Também podemos utilizar a ferramenta DCLI para as configurações.
[oracle@exadb01 ~]$ . oraenv ORACLE_SID = [xdbvm] ?+ASM The Oracle base remains unchanged with value /u01/app/oracle [oracle@exadb01 ~]$ ps -ef | greppmon oracle 3344 3392 0 08:54 pts/2 00:00:00 greppmon [oracle@exadb01 ~]$ srvctl start asm [oracle@exadb01 ~]$ srvctl start diskgroup -g DATA [oracle@exadb01 ~]$ srvctl start diskgroup -g RECO [oracle@exadb01 ~]$ srvctl start database -d xdbvm [oracle@exadb01 ~]$ ps -ef | greppmon oracle 3441 1 0 08:55 ? 00:00:00 asm_pmon_+ASM oracle 3704 1 0 08:55 ? 00:00:00 ora_pmon_xdbvm oracle 4000 3392 0 08:56 pts/2 00:00:00 greppmon
[oracle@exadb01 ~]$ . oraenv ORACLE_SID = [+ASM] ?xdbvm The Oracle base remains unchanged with value /u01/app/oracle [oracle@exadb01 ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 3 08:57:06 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved. SQL> connect sys/welcome1@xdbvm as sysdba SQL> select open_mode,database_role from v$database; OPEN_MODE DATABASE_ROLE ------------------- ----------------- READ WRITE PRIMARY
Deiby Gómez es un DBA con experiencia en Oracle Exadata Database Machine y Soluciones de Alta Disponibilidad. Frecuentemente da conferencias en distintos eventos de Oracle en Guatemala tales como "Oracle Technology Network Tour", "Java Day", "Primer Simposio de Oracle" y en varias Universidades de su país de residencia (Guatemala). Deiby es el primer Oracle ACE de Guatemala. Deiby es "Oracle RAC 11g and Grid Infraestructure Administrator" y "Exadata Database Machine X3 Administrator". Constantemente publica artículos en su blog www.oraclefromguatemala.com.gt.
Yenugula Venkata RaviKumar es un DBA con más de 13 años de experiencia, especializado en ambientes de Alta Disponibilidad de Bases de Datos (RAC, Data Guard, Golden Gate, entre otras), afinación del rendimiento para Bases de Datos, Migraciones y Respaldos, Oracle Exadata X2 y X3, experto en Sistemas operativos como AIX, HP-UX y Linux . Ha participado como conferencista en varios eventos Oracle en la India donde actualmente reside. Obtuvo el título de Oracle Certified Master 10g en el año 2009.Constantemente publica artículos en su blog http://yvrk1973.blogspot.in.