Responder a este comentário

Quais os cuidados a ter quando trabalhar com GRANT / REVOKE / ROLE

Versão para impressãoEnviar para amigoVersão PDF
  • Para remover a permissão de DBA ou RESOURCE de um usuário basta executar um REVOKE, porém este revoke irá sempre colocar a permissão do usuário em CONNECT, sendo que se o desejo for tirar o acesso total do usuário é necessário remover om CONNECT também:
        GRANT DBA TO cesar;
        REVOKE DBA TO cesar;
        REVOKE CONNECT TO cesar;
    

  • Quando o banco é criado em modo NÃO-ANSI, ao criar um objeto é dado permissões automaticamente para o usuário PUBLIC.
    Exemplo:
        -- considerando que em um banco está sendo utilizado o usuário "cmartins" 
        -- com permissão de RESOURCE e/ou DBA (para assim poder ter permissão de 
        -- criar objetos).
        CREATE TABLE TESTE(...);
        SELECT... FROM systabauth, systables...;
          ...
          teste                cmartins   public     su-idx---
          ...
    

  • Para contornar o problema acima, definir como padrão nas variáveis de ambiente dos usuários que tem acesso a criação de objetos a variavel NODEFDAC=yes ou executar manualmente:
    REVOKE all on tabela_xyz FROM public;
  • Quando é dado permissões por colunas em SELECT e UPDATE , não pode existir grant de SELECT/UPDATE na tabela para o usuário em questão, se tiver estes grants sobrepõe as restrições por coluna, ou seja, quando executar um grant por coluna, sempre executar um REVOKE SELECT/UPDATE na tabela.
  • Quando uma procedure é criada com o operador DBA ( CREATE DBA PROCEDURE ) sua execução é realizada com os privilégios do dono (owner) dela, ou seja, com privilégios de DBA.
    Se é dado um grant para um usuário X executar uma procedure criada pelo usuário "informix" ou usuário DBA do banco de dados, todo o acesso feito dentro da procedure será com o privilégio do usuário "informix" ou DBA.
    Para procedures criadas sem esta palavra chave ou por usuários, executam normalmente com o privilégio do usuário que a chamou.
    ATENÇÃO: Existe um bug na versão 11.50 xC5 (e provavelmente nas versões anteriores) em que uma procedure criada por um usuário DBA é criada como se o operador DBA fosse passado, sendo assim qualquer usuário que executa-la terá a execução no nível de DBA.
  • Quando definido uma ROLE e suas permissões , ao um usuário ativar ela, as permissões já existentes para o usuário não são sobrescritas, ou seja, é mesclado as permissões da ROLE + Permissões do USUÁRIO.

3
Média: 3 (1 vote)
Sua avaliação: Nenhum

Responder

O conteúdo deste campo é privado não será exibido ao público.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Você pode usar tags BBCode no texto.
  • Tags HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

Mais informações sobre as opções de formatação

CAPTCHA
Este teste é para bloquear programas automatizados e previnir spams
CAPTCHA de Imagem
Enter the characters shown in the image.