Usuários com acesso no banco Informix mais sem Cadastro no S.O
Depois de anos cadastrando/retirando acesso dos usuários no banco informix a equipe Informix resolveu fazer uma faxina geral das permissões nos bancos Informix, foi criado um script que faz a comparação entre o banco Informix e o Sistema Operacional, primeiro no banco Informix gera um arquivo das permissões dos usuários com CONNECT (dbschema) e compara com os usuários cadastrados no sistema operacional, no final temos dois relatórios que mostra as permissões (grants) e os (revokes) dos usuários com acesso no banco mais que não estão cadastrados no sistema operacional.
Download do Script Completo - Clique Aqui
Rodando o Script
Primeiro vamos rodar um script que checa no banco aa01055 os usuários com a permissão de CONNECT e que não tem estão cadastrados no Sistema Operacional;
[c099:informix]$/export/home/informix> ./remover_acesso_do_banco.sql
Informando um Banco
Digito o nome do banco de dados;
-------------------------------------------------------------------------------------------------
09/06/2014 ***** INFORMIX BASIC SERVICES ***** 14:12:33
-------------------------------------------------------------------------------------------------
Digite o NOME DO BANCO DE DADOS ..........: aa01055
Vamos aguardar alguns segundos;
-------------------------------------------------------------------------------------------------
09/06/2014 ***** INFORMIX BASIC SERVICES ***** 14:14:01
-------------------------------------------------------------------------------------------------
+---------------------------------------------------------+
| |
| aguarde alguns segundos ... |
| |
+---------------------------------------------------------+
Rodou com Sucesso
Feito, gerou os dois arquivos com os GRANTS e os REVOKES
-------------------------------------------------------------------------------------------------
09/06/2014 ***** INFORMIX BASIC SERVICES ***** 14:15:19
-------------------------------------------------------------------------------------------------
Database aa01055
+---------------------------------------------------------------------------------------+
| |
| Usuarios com acesso no banco mais sem usuario cadatrado no Sistema Operacional. |
| |
+---------------------------------------------------------------------------------------+
+---------------------------------------------------------+
| |
| Arquivo do GRANTS - GRANTS_09_06_2014_14:12:33.sql |
| |
| Arquivo do REVOKES - REVOKE_09_06_2014_14:12:33.sql |
| |
+---------------------------------------------------------+
[c099:informix]$/export/home/informix>
Arquivo das Permissões - Grants
Verificando o arquivo dos grants dos usuários que não estão cadastrados no sistema operacional (e que tem permissão de connect no banco);
[c099:informix]$/export/home/informix> cat GRANTS_09_06_2014_14:23:30.sql
grant connect to "sehac";
grant connect to "semed";
grant update on "dba".guia_almoxarifado_cancelada_tmp to "sehac" as "dba";
grant insert on "dba".guia_almoxarifado_cancelada_tmp to "sehac" as "dba";
grant delete on "dba".guia_almoxarifado_cancelada_tmp to "sehac" as "dba";
grant update on "dba".guia_almoxarifado_cancelada to "sehac" as "dba";
grant insert on "dba".guia_almoxarifado_cancelada to "sehac" as "dba";
---- corte ----
Arquivo das Permissões - Revokes
O arquivo com os comandos revoke, este vou rodar no dbaccess para retirar os acessos;
[c099:informix]$/export/home/informix> cat REVOKE_09_06_2014_14:23:30.sql
revoke connect from "sehac";
revoke connect from "semed";
revoke update on "dba".guia_almoxarifado_cancelada_tmp from "sehac" as "dba";
revoke insert on "dba".guia_almoxarifado_cancelada_tmp from "sehac" as "dba";
revoke delete on "dba".guia_almoxarifado_cancelada_tmp from "sehac" as "dba";
revoke update on "dba".guia_almoxarifado_cancelada from "sehac" as "dba";
revoke insert on "dba".guia_almoxarifado_cancelada from "sehac" as "dba";
---- corte ----
Checando os Usuários
Só confirmando, esses dois usuários não estão cadastrados no sistema operacional do servidor;
[c099:informix]$/export/home/informix> finger sehac
finger: sehac: no such user.
[c099:informix]$/export/home/informix> finger semed
finger: semed: no such user.
Rodando o Revoke
Vamos acessar o dbaccess do banco aa01055 e rodar o arquivo de REVOKE que vai remover as permissões dos usuários;
[c099:informix]$/export/home/informix> dbaccess aa01055
Acesso as opçoes > Query-language > Choose > seleciono o REVOKE_09_06_2014_14:12:33.sql
CHOOSE >>
Choose a command file with the Arrow Keys, or enter a name, then press Return.
----------------------- aa01055@teste --------- Press CTRL-W for Help --------
GRANTS_09_06_2014+ revoke
REVOKE_09_06_2014+ tbl_sel
Enter em Run para rodar;
SQL: New Run Modify Use-editor Output Choose Save Info Drop Exit
Run the current SQL statements.
-- 1 to 52 of 3519 ---- aa01055@teste --------- Press CTRL-W for Help --------
revoke connect from "sehac";
revoke connect from "semed";
revoke update on "dba".guia_almoxarifado_cancelada_tmp from "sehac" as "dba";
revoke insert on "dba".guia_almoxarifado_cancelada_tmp from "sehac" as "dba";
revoke delete on "dba".guia_almoxarifado_cancelada_tmp from "sehac" as "dba";
revoke update on "dba".guia_almoxarifado_cancelada from "sehac" as "dba";
revoke insert on "dba".guia_almoxarifado_cancelada from "sehac" as "dba";
---- corte ----
Feito, retirado os acessos dos usuários;
Observação
1 - Se no arquivo de revoke aparecer esta mensagem:
[c099:informix]$/export/home/informix> cat REVOKE_09_06_2014_14:55:28.sql
-p permissions granted from user name
-r create and grant of the role
Deve ter um connect em branco ou com um simbolo não valido - no meu caso foi um grant em branco que deu esta mensagem; grant connect to "";
2 - Neste servidor não usamos o PAM, que é um mecanismo para integrar múltiplos esquemas de autenticação de baixo nível no Informix (um bom exemplo de autenticação de PAM é habilitar a autenticação dos usuários via AD (da Microsoft), neste teste os usuários tem que estar cadastrado no sistema operacional para poder acessar o banco Informix;
0 comentários:
Enviar um comentário