Árvore de páginas

Para ambientes que utilizam o SGBD Oracle, a criação de um usuário deve ter os seguintes GRANTS:

  • UNLIMITED TABLESPACE (estrela azul)
  • ALTER SYSTEM (estrela verde)
  • CREATE VIEW
  • CONNECT
  • RESOURCE
  • SELECT ON SYS.COL$ (estrela)
  • SELECT ON SYS.OBJ$ (estrela)
  • SELECT ON SYS.IND$ (estrela)
  • SELECT ON SYS.ICOL$ (estrela)
  • SELECT ON SYS.ALL_ARGUMENTS (informação)
  • SELECT ON SYS.ALL_INDEXES (informação)
  • SELECT ON SYS.ALL_IND_COLUMNS (informação)
  • SELECT ON SYS.ALL_OBJECTS (informação)
  • SELECT ON SYS.ALL_PROCEDURES (informação)
  • SELECT ON SYS.ALL_SEQUENCES (informação)
  • SELECT ON SYS.ALL_TABLES (informação)
  • SELECT ON SYS.ALL_TAB_COLUMNS (informação)
  • SELECT ON SYS.ALL_TRIGGERS (informação)
  • SELECT ON SYS.ALL_VIEWS (informação)
  • SELECT ON SYS.DATABASE_PROPERTIES
  • SELECT ON SYS.NLS_SESSION_PARAMETERS
  • SELECT ON SYS.V_$VERSION
  • SELECT ON SYS.GV_$SESSION
  • SELECT ON SYS.V_$NLS_PARAMETERS
  • SELECT ON SYS.GV_$NLS_PARAMETERS
  • SELECT ON SYS.V_$PARAMETER
  • SELECT ON SYS.GV_$PARAMETER
  • SELECT ON SYS.DBA_ROLE_PRIVS (estrela vermelha)
  • SELECT ON SYS.DBA_TAB_PRIVS (estrela vermelha)
  • SELECT ON SYS.ROLE_TAB_PRIVS (estrela vermelha)
  • SELECT ON SYS.V$INSTANCE
  • SELECT ON SYS.GV$INSTANCE

(estrela) Esses grants são necessários quando a chave UseSysTables está ligada.

(estrela vermelha) Esses grants são necessários para verificar se o usuário possui os grants mínimos para uso do DBAccess.

(estrela azul)Esse grant não pode ser aplicado em uma ROLE, somente para um usuário.

(estrela verde)Esse grant deve ser liberado para o uso da funcionalidade de encerramento de conexão - kill 

(informação) A Partir do DBAccess Build 20191119, as consultas anteriormente feitas para as views ALL_* passam a ser feitas para as views USER_*. 


Observação

  • Caso o usuário possua o grant DBA, não é necessário ter os grants "SELECT ON ...", por estar implícito, mas não exclui os demais.



Uma forma de dar os mesmos grants para vários usuários é criar uma ROLE, dar os grants acima citados para a ROLE e associar a ROLE com o usuário, como no exemplo abaixo:

  • Criando uma ROLE chamada C##DBROLE:

    CREATE ROLE C##DBROLE NOT IDENTIFIED;
  • Concedendo GRANTS para a ROLE:

    GRANT CONNECT TO C##DBROLE;
    GRANT RESOURCE TO C##DBROLE;
    GRANT ALTER SYSTEM TO C##DBROLE;
    GRANT CREATE VIEW TO C##DBROLE;
    GRANT SELECT ON SYS.COL$ TO C##DBROLE;
    GRANT SELECT ON SYS.OBJ$ TO C##DBROLE;
    GRANT SELECT ON SYS.IND$ TO C##DBROLE;
    GRANT SELECT ON SYS.ICOL$ TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_ARGUMENTS TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_INDEXES TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_IND_COLUMNS TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_OBJECTS TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_PROCEDURES TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_SEQUENCES TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_TABLES TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_TAB_COLUMNS TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_TRIGGERS TO C##DBROLE;
    GRANT SELECT ON SYS.ALL_VIEWS TO C##DBROLE;
    GRANT SELECT ON SYS.DATABASE_PROPERTIES TO C##DBROLE;
    GRANT SELECT ON SYS.NLS_SESSION_PARAMETERS TO C##DBROLE;
    GRANT SELECT ON SYS.V_$VERSION TO C##DBROLE;
    GRANT SELECT ON SYS.GV_$SESSION TO C##DBROLE;
    GRANT SELECT ON SYS.V_$NLS_PARAMETERS TO C##DBROLE;
    GRANT SELECT ON SYS.GV_$NLS_PARAMETERS TO C##DBROLE;
    GRANT SELECT ON SYS.V_$PARAMETER TO C##DBROLE;
    GRANT SELECT ON SYS.GV_$PARAMETER TO C##DBROLE;
    GRANT SELECT ON SYS.DBA_ROLE_PRIVS TO C##DBROLE;
    GRANT SELECT ON SYS.DBA_TAB_PRIVS TO C##DBROLE;
    GRANT SELECT ON SYS.ROLE_TAB_PRIVS TO C##DBROLE;
    GRANT SELECT ON SYS.V$INSTANCE TO C##DBROLE;
    GRANT SELECT ON SYS.GV$INSTANCE TO C##DBROLE;
  • Associando a ROLE ao usuário C##DBACCESS:

    GRANT C##DBROLE TO C##DBACCESS;
  • Concedendo GRANT de UNLIMITED TABLESPACE ao usuário C##DBACCESS

    GRANT UNLIMITED TABLESPACE TO C##DBACCESS;