Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 2)

Por Deiby Gómez Robles , Yenugula Venkata RaviKumar (OCM) e David Siqueira
Postado en março 2014


Indice:

  1. Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 1)
  2. Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 2)
  3. Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 3)

Introdução: Na primeira parte do artigo, explicamos porque é muito importante a implementação da segurança em um ambiente de "Oracle ExadataDatabase Machine" para podermosrestringir o uso de "Grid Disk" para determinadas bases de dados os clusteres de ASM e por isso foi feito um procedimento que é realizado para implementação da segurança em ASM. Neste novo artigo continuaremos com a demonstração de como implementar segurança á nível de banco de dados.

Restringir o acesso á certos bancos de dados para alguns "ExadataCell" e a determinados "Grid Disk" é utilizado com frequencia garantindo na maioria das organizações que usam bancos de dados uma forma de representação como uma unidade de negócios, por exemplo, o departamento de recursos humanos utiliza uma base de dados diferente para o departamento de recrutamento, deixando o requisito para restringir os dados por conta de um serviço com informação sobre o outro. Em outras organizações, cada departamento tem um certo orçamento para todos os departamentos não podendo usar  os discos que desejam para armazenar seus dados, deixando a exigência de que alguns bancos de dados só podem usar determinados discos. A implementação da segurança no banco de dados representa um nível mais fino de granularidade, um nível de segurança em ASM desde o  cluster ASM que pode afetar vários outros bancos de dados.

Configuração de Segurança á Nível de Banco de Dados

Ambiente utilizado:

  • Uma base de dados simples chamada "xdbvm" versão 11.2.0.3
  • Uma instância de ASM versão 11.2.0.3
  • Dois "Exadata Cell" chamados "Cell01" e "Cell02", cada um com 12 "Grid Disk".
  • Versão 11.2.3.2.1 das "Exadata Cell".

A seguir demonstraremos como se realiza a implementação da segurança a nivel de banco de dados, proporcionando acessos aos "Grid Disks" das Células "Exadata Cell" "Cell01" e "Cell02".

  1. Baixar a instancia de Banco de Dados e de ASM :
  2. [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

  3. Crie a chave para cada banco de dados em cluster no ASM, apenas uma vez:
  4. [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

  5. Para cada Banco de Dados crie um arquivo "cellkey.ora" (este arquivo contém as mesmas informações que o arquivo que foi usado na segurança a de nível ASM) usando a chave nova criada no passo 2 e movelo para o diretório"$ORACLE_HOME/admin/db_unique_name/pfile". Troque as permissões do arquivo :
  6. [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
    

  7. Efetuar  "Login" na  "Exadata Cell Cell01" e registrar a chave:
  8. CellCLI> assign key for
    xdbvm='5d961433bf2f41e4a7ed77db1b14d3a7'
    Key for xdbvm successfully  created
    CellCLI> list key
             +ASM     8804b0e5bb8f6a4d10a0e17843e60c1
    xdbvm   5d961433bf2f41e4a7ed77db1b14d3a7

  9. Modifique o  "Grid Disk" do "Exadata Cell Cell01" e troque o atributo chamado  "availableTo":
  10. 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

  11. Verifique a propriedade  "availableTo" no "Exadata Cell Cell01":
  12. 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

  13. Efetue "Login" na "Exadata Cell Cell02" e verifique o status dos serviços:
  14. [celladmin@cell02 ~]$  servicecelld status
    Password:
    rsStatus:               running
    msStatus:               running
    cellsrvStatus:          running

  15. Registre a chave na base de dados "xdbvm" para que possa ter acesso aos "Grid Disk":
  16. [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

  17. Modifique o  "Grid Disk" do  "Exadata Cell Cell02"
  18. 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

  19. Verifique as propriedades  "availableTo" do "Exadata Cell Cell01"
  20. 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.


  21. Inicializar a instância de  ASM e a instância de Base de Dados:
  22. [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

  23. Efetuar  "Login" na base de dados e revisar o seu status:
  24. [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.

David Siqueira DBA desde 2001, atuante no mercado de São Paulo Brasil, trabalhou nas principais consultorias sempre buscando melhorar conhecimentos e agregar valor aos ambientes por onde passou, é OCP 10 e 11g, OCE SQL Expert, OCE RAC 10g, OCE Exadata Essentials e foi nomeado Oracle ACE em Dezembro de 2011. Atua com ambientes de Alta Disponibilidade Oracel RAC 11g, Exadata X2-2 e Administração de Banco de Dados em Geral. Também possui conhecimentos em sistemas operacionais Oracle VM server e Oracle Businnes Intelligence.