[firebase-br] Permissão em database para usuário

Gamaliel None alexandre em three2dev.info
Qua Abr 1 09:51:18 -03 2009


Segue uma sugestão:

 

Uma forma de proteger suas tabelas e demais objetos do banco de um possível usuário SYSDBA, é, você criar o banco de dados e, todos os demais objetos com um usuário diferente do sysdba. Então crie um Role com esse nome (SYSDBA) e tire todos os privilégios desse Role ( Revoke All Privileges ). Feito isso, tire todos os privilégios da parte pública (Public - Revoke All Priv...). Por fim, para aumentar a proteção de suas procedures e triggers basta executar os códigos abaixo: 

Para procedures: 
UPDATE rdb$procedures 
SET rdb$procedure_source = NULL, 
rdb$description =\'Protegido por lei de copyright\' 
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL)) 


Para Triggers: 
UPDATE rdb$triggers a 
SET rdb$trigger_source = NULL, 
rdb$description =\'Protegido por lei de copyright\' 
WHERE ((rdb$system_flag = 0) 
OR (rdb$system_flag IS NULL)) 
AND NOT EXISTS( 
SELECT rdb$trigger_name FROM rdb$check_constraints 
WHERE rdb$trigger_name=a.rdb$trigger_name) 


Para Views: 
UPDATE rdb$relations 
SET rdb$view_source = NULL, 
rdb$description =\'Protegido por lei de copyright\' 
WHERE ((rdb$system_flag = 0) OR (rdb$system_flag IS NULL)) 

OBSERVAÇÃO: Esses códigos para proteção de triggers, procedures e views devem ser utilizados nas cópias do banco, isso porque é praticamente impossível desfazer essa operação, então, façam isso apenas nos bancos que forem ser distribuídos (mantendo uma cópia original).

 

Espero ter ajudado. Um forte abraço a todos! 
 
> Date: Tue, 31 Mar 2009 22:56:47 -0300
> From: ssjones em gmail.com
> To: lista em firebase.com.br
> Subject: [firebase-br] Permissão em database para usuário
> 
> Estou com um problema com o Firebird e gostaria de saber se o banco é usado
> dessa forma.
> 
> Vamos a um exemplo do problema: Tenho um usuário 'A' e um usuário 'B'. O
> usuário 'A' cria um database e depois uma tabela dentro desse database, se
> eu me autentico com o usuário 'B', eu consigo acessar o database criado por
> 'A' e visualizar as tabelas criadas por ele (não consigo ver os dados
> inseridos nas tabelas).
> É possivel barrar que o usuário B acesse esse database de A? Estou
> acostumado a trabalhar com mysql e sql, e esses banco de dados não permitem
> que outros usuários acessem a áreas restritas.
> Se é possivel barrar esses acessos, aonde faço essas configurações?
> 
> Todas as regras que encontrei eram aplicadas para tabelas, mas o que eu
> preciso é de regras para database. Me informaram
> que eu poderia realizar essas permissões dessa forma:
> 
> grant all on BancoDaMartina.* to martina with grant option
> 
> BancoDaMartina.* quer dizer todas as tabelas do banco BancoDaMartina.
> 
> Mas o Firebird não aceitou esse comando.
> 
> Alguem pode me ajudar?
> 
> Observação: Estou utilizando Debian e a versão do Firebird é 2.1.1
> 
> -- 
> ~yuRi
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa

_________________________________________________________________
Novo Windows Live: Messenger 2009 e muito mais. Descubra!
http://www.windowslive.com.br


Mais detalhes sobre a lista de discussão lista