SYSBACKUP Privilege

Por Rodrigo Mufalani Oracle ACE e David Siqueira Oracle ACE
Postado em Outubro 2016

Revisado por Marcelo Pivovar - Solution Architect

Neste artigo iremos discutir uma nova funcionalidade do Oracle 12c, o privilégio SYSBACKUP que é usado para separação de privilégios entre times distintos dentro de uma mesma companhia. Assim como o SYSDBA, esse privilégio pode ser concedido a um usuário do banco de dados que será um administrador de backup. É uma boa prática criar um usuário separado para não ter que o time de backup não precise ter posse da conta SYS e atualmente é assim que diversas ferramentas de backup, os famosos MML ou Media Management Library, atuam para se conectar ao banco de dados pelo utilitário RMAN.

O RMAN é uma ferramenta fantástica, e atualmente muito automatizada, para fazer operações de backup e restore em ambientes bem complexos de bancos de dados. Essa incrível ferramenta de backup foi introduzida na versão 8 do banco de dados Oracle e tem sido melhorada a cada novo release com diversas automações e novas funcionalidades, o que facilita muito a vida do time de DBA de qualquer empresa. Se quiser conhecer mais sobre o RMAN, recomendo a leitura do manual oficial de Backup & Recovery da Oracle no link abaixo:

https://docs.oracle.com/database/121/BRADV/rcmcnctg.htm - BRADV005

Para realizar os passos deste artigo, é bom que já tenha algum conhecimento sobre backup e recuperação usando o RMAN, caso não tenha, o link acima será muito útil para você, então, sugiro a leitura de todo ele.

1. Iremos criar um usuário chamado backup_admin

Na imagem acima, foram criados um usuário “backup_admin”, demos o novo privilégio de SYSBACKUP para ele e então logamos no SQLPLUS para fazer um select na V$INSTANCE. Importante notar que não demos mais nenhum privilégio para este usuário, então tenha cuidado para quem no seu banco de dados vai conceder essa role, sem conhecer muito ainda sobre ela neste ponto do artigo vimos que de cara ela me permite acesso ao banco via SQL e acesso a algumas views V$. Faça um teste, experimente criar um usuário normal sem dar acesso algum, apenas create session, que nem demos nesse caso, veja que ele terá um acesso limitadíssimo ao banco de dados e não é permitido fazer quase nada.

Obs.: O banco de dados somente permitiu a conexão com o banco de dados via SQLPLUS quando usamos a role SYSBACKUP e já com acesso a views V$.

2. Acessando o RMAN com o SYS e BACKUP_ADMIN (com SYSBACKUP)

Obs.: Assim como não é mandatório especificar SYSDBA para logar no RMAN com o user SYS, você também não precisa explicitar a role SYSBACKUP para se conectar com um user que recebeu o privilégio de SYSBACKUP.

3. Backup do pluggable database ORCL com o usuário criado (BACKUP_ADMIN)

Obs.: Como não havíamos previamente configurado o banco de dados em modo archivelog, apenas é possível realizar backups off-line do banco de dados conforme mostramos na imagem acima. Fizemos backup apenas do pluggable database “orcl” e armazenamos o mesmo no /tmp.

4. Abrindo novamente o banco de dados CDB1 com o usuário criado (BACKUP_ADMIN)

O que podemos ver até este momento é que essa role permite realizar diversas operações de backup, parada do banco de dados, abertura do mesmo então ela tem alguns poderes bem relevantes e deve ser concedida apenas para usuários que tem a necessidade de desempenhar este tipo de operações em um banco de dados. Fomos buscar todos os privilégios atribuídos para quem recebe essa role e encontramos no manual oficial Database Securety Guide:

https://docs.oracle.com/database/121/DBSEG/authorization.htm - DBSEG785

Segue abaixo a listagem de privilégios que a role possui:

  • STARTUP
  • SHUTDOWN
  • ALTER DATABASE
  • ALTER SYSTEM
  • ALTER SESSION
  • ALTER TABLESPACE
  • CREATE CONTROLFILE
  • CREATE ANY DIRECTORY
  • CREATE ANY TABLE
  • CREATE ANY CLUSTER
  • CREATE PFILE
  • CREATE RESTORE POINT (including GUARANTEED restore points)
  • CREATE SESSION
  • CREATE SPFILE
  • DROP DATABASE
  • DROP TABLESPACE
  • DROP RESTORE POINT (including GUARANTEED restore points)
  • FLASHBACK DATABASE
  • RESUMABLE
  • UNLIMITED TABLESPACE
  • SELECT ANY DICTIONARY
  • SELECT ANY TRANSACTION
  • SELECT
    • X$ tables (that is, the fixed tables)
    • V$ and GV$ views (that is, the dynamic performance views)
    • APPQOSSYS.WLM_CLASSIFIER_PLAN
    • SYSTEM.LOGSTDBY$PARAMETERS
  • DELETE/INSERT
    • SYS.APPLY$_SOURCE_SCHEMA
    • SYSTEM.LOGSTDBY$PARAMETERS
  • EXECUTE
    • SYS.DBMS_BACKUP_RESTORE
    • SYS.DBMS_RCVMAN
    • SYS.DBMS_DATAPUMP
    • SYS.DBMS_IR
    • SYS.DBMS_PIPE
    • SYS.SYS_ERROR
    • SYS.DBMS_TTS
    • SYS.DBMS_TDB
    • SYS.DBMS_PLUGTS
    • SYS.DBMS_PLUGTSP
  • SELECT_CATALOG_ROLE

E como vimos acima, te permite além disse se conectar a um banco de dados mesmo que ele não esteja aberto. São bastante privilégios nessa role, então, use-a com extrema cautela e moderação. Importante, assim como a role SYSDBA, é obrigatório que configure um password file no seu banco de dados para que ela funcione e permite acesso ao BD.

Esperamos que este artigo tenha enriquecido mais ainda o seu conhecimento sobre o Oracle e não deixe de conferir todos os recursos e todo conhecimento disponíveis no site da OTN em Português, espanhol e em inglês.



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.

Mufalani é um DBA Sr. com mais de 10 anos de experiência, começou com o Oracle 8i, mas teve a oportunidade de dar suporte a Oracle 7.3.4 em diante. É especialista em banco de dados Oracle com foco principal em Performance & Tuning e RAC. É palestrante em eventos de Oracle como: OTN LAD TOUR e outros. Atualmente trabalha como consultor diversas empresas no segmento de variados ramos como: Educação, Saúde, Tecnologia, Seguros e etc. Foi o terceiro Oracle ACE a ser nomeado no Brasil e é OCP DBA nas versões 10g e 11g. Atualmente trabalha na Mufalani. Twitter @mufalani / blog www.mufalani.com.br/blog

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.