Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 07 de Setembro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
52 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Como proteger seu banco de dados Interbase/FireBird
Publicado por ActiveDelphi : Quinta, Junho 02, 2005 - 04:32 GMT-3 (12478 leituras)
Comentários 3 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Algo que me deixa incomodado é ter alguém fuçando no banco de dados que criei, mais ainda quando me dizem que copiando o meu banco para outro computador, pode ser acessado por outra pessoa com a mesma senha e usuário do SYSDBA mesmo que tenha mudado a senha do mesmo.
O que fazer então ?

Pesquisando na Internet a muito trancos e barrancos conseguir achar algo que poder não resolver mais minimizar este problema.

Vejamos como:

Primeiro acesse o IBCONSOLE ou qualquer outra ferramenta que preferir criamos então um usuário qualquer exemplo: "PROTEGIDO" e coloque uma senha de sua preferencia exemplo: "123456"

Logo após crie um banco de dados com o usuário "PROTEGIDO"
Exemplo: create database ‘C:\teste.gbd’ page_size 1024 user ‘PROTEGIDO’ password ‘123456’;

Crie também um Role para SYSDBA.
CREATE ROLE SYSDBA;

Agora que começa o macete !

A partir daqui vamos garantir os direitos do usuário ‘PROTEGIDO’ e revogar todos os direitos do usuário ‘SYSDBA’.

Os comandos que devem ser executados são os seguintes:

GRANT ALL ON CLIENTES TO PROTEGIDO WITH GRANT OPTION;
REVOKE ALL ON CLIENTES FROM PUBLIC;
GRANTO ALL ON FORNEC TO PROTEGIDO WITH GRANT OPTION;
REVOKE ALL ON CLIENTES FROM PUBLIC;

Atenção !!!
Estes comando devem ser repetidos para cada tabela criada no seu banco de dados, isso que vai garantir o seu acesso total as tabelas.
Feito isso vamos mais alem os direitos de cria qualquer coisa, como SP,Trigger,Funçoes, indices, etc.
Para este banco também ficará restrito ao usuário ‘PROTEGIDO’

Vejamos como:
GRANT ALL ON RDB$CHARACTER_SETS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$CHECK_CONSTRAINTS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$COLLATIONS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$DATABASE TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$DEPENDENCIES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$EXCEPTIONS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FIELDS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FIELD_DIMENSIONS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FILES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FILTERS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FORMATS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FUNCTIONS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$FUNCTION_ARGUMENTS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$GENERATORS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$INDEX_SEGMENTS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$INDICES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$LOG_FILES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$PAGES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$PROCEDURES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$PROCEDURE_PARAMETERS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$REF_CONSTRAINTS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$RELATIONS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$RELATION_CONSTRAINTS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$RELATION_FIELDS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$ROLES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$SECURITY_CLASSES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$TRANSACTIONS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$TRIGGERS TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$TRIGGER_MESSAGES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$TYPES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$USER_PRIVILEGES TO PROTEGIGO WITH GRANT OPTION;
GRANT ALL ON RDB$VIEW_RELATIONS TO PROTEGIGO WITH GRANT OPTION;

REVOKE ALL ON RDB$CHARACTER_SETS FROM PUBLIC;
REVOKE ALL ON RDB$CHECK_CONSTRAINTS FROM PUBLIC;
REVOKE ALL ON RDB$COLLATIONS FROM PUBLIC;
REVOKE ALL ON RDB$DATABASE FROM PUBLIC;
REVOKE ALL ON RDB$DEPENDENCIES FROM PUBLIC;
REVOKE ALL ON RDB$EXCEPTIONS FROM PUBLIC;
REVOKE ALL ON RDB$FIELDS FROM PUBLIC;
REVOKE ALL ON RDB$FIELD_DIMENSIONS FROM PUBLIC;
REVOKE ALL ON RDB$FILES FROM PUBLIC;
REVOKE ALL ON RDB$FILTERS FROM PUBLIC;
REVOKE ALL ON RDB$FORMATS FROM PUBLIC;
REVOKE ALL ON RDB$FUNCTIONS FROM PUBLIC;
REVOKE ALL ON RDB$FUNCTION_ARGUMENTS FROM PUBLIC;
REVOKE ALL ON RDB$GENERATORS FROM PUBLIC;
REVOKE ALL ON RDB$INDEX_SEGMENTS FROM PUBLIC;
REVOKE ALL ON RDB$INDICES FROM PUBLIC;
REVOKE ALL ON RDB$LOG_FILES FROM PUBLIC;
REVOKE ALL ON RDB$PAGES FROM PUBLIC;
REVOKE ALL ON RDB$PROCEDURES FROM PUBLIC;
REVOKE ALL ON RDB$PROCEDURE_PARAMETERS FROM PUBLIC;
REVOKE ALL ON RDB$REF_CONSTRAINTS FROM PUBLIC;
REVOKE ALL ON RDB$RELATIONS FROM PUBLIC;
REVOKE ALL ON RDB$RELATION_CONSTRAINTS FROM PUBLIC;
REVOKE ALL ON RDB$RELATION_FIELDS FROM PUBLIC;
REVOKE ALL ON RDB$ROLES FROM PUBLIC;
REVOKE ALL ON RDB$SECURITY_CLASSES FROM PUBLIC;
REVOKE ALL ON RDB$TRANSACTIONS FROM PUBLIC;
REVOKE ALL ON RDB$TRIGGERS FROM PUBLIC;
REVOKE ALL ON RDB$TRIGGER_MESSAGES FROM PUBLIC;
REVOKE ALL ON RDB$TYPES FROM PUBLIC;
REVOKE ALL ON RDB$USER_PRIVILEGES FROM PUBLIC;
REVOKE ALL ON RDB$VIEW_RELATIONS FROM PUBLIC;

Pronto está tudo feito, se o usuário SYSDBA tentar acessar o banco de dados criado pelo usuário ‘PROTEGIDO’ o mesmo irá repudiá-lo mesmo que se copie este banco de dados para outro computador.

Mas como nem tudo é perfeito vamos ver uma pequena pedra de tropeço. Se copiamos o banco para outro computador ele realmente não será aberto pelo usuário ‘SYSDBA’ porem se eu criar o mesmo usuário chamado ‘PROTEGIDO’ e até mesmo colocar uma senha diferente ele permitira que o mesmo seja aberto tranqüilamente.

Portando nada disso feito valerá se você tiver boca grande demais e falar qual foi usuário que você usou para criar ou seu banco de dados ou até mesmo se tem vários usuários que tem a sua senha ‘SYSDBA’ e possa ver qual usuário que você criou no seu computador.

Espero que tenha ajudado vocês, abraços !!!
Há e não se esqueça, boca de siri.

Lindomar F. da Cruz

linsoft@itelefonica.com.br


 



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: icemagno : Jun 02, 2005 - 07:17
(Informações sobre o membro | Enviar uma mensagem) http://omega.trixhost.com/
Eu estou criando o primeiro servidor de SQL criptografado! Tráfego na rede, armazenamento em disco...tudo criptografado naturalmente, sem precisar de preocupações. Componentes de acesso 100% compatíveis com o Delphi! Acompanhem no meu site: http://omega.trixhost.com/ Dêem sua opinião!
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados