Re: [firebase-br] Verifique sempre o USER tem GRANT EXECUTE para essa Function, Procedure ou qualquer outro objeto

Gladiston Santana via lista <[email protected]>
Newsgroups gmane.comp.db.firebase.portuguese
Message-ID <CALv8-NMoQVgvK=qpMNM9cGZkqPRcN8Vq5oqtCLWej1WT6iVYDg@mail.gmail.com>
Numa situação assim, muitas pessoas fazem login com o usuário SYSDBA ou
similar com a role RDB$ADMIN e se esquivam desse problema de falta de
permissão, mas acho isso uma falha critica pq sabendo-se da senha eu
poderia usar uma ferramenta externa qualquer para causar danos à base.
Uma abordagem que faço no meu programa, é fazer o programa acme.exe usar
sempre a mesma ROLE, a ROLE têm permissão a tudo que o programa precisa e
então usuários que rodarão este programa são associados a essa role. O
usuário tem zero permissão em qualquer lugar do banco, mas internamente, o
programa faz a conexão desse usuário com essa ROLE e daí então o usuário
enquanto usa o programa herda as permissões da role. No login do usuário
ele informa o usuário e a senha, mas o acme.exe junta a ROLE secretamente.
Outra dica, durante o desenvolvimento do seu sistema, nada de usar
administrador ou  SYSDBA, use apenas um usuário normal do windows e usuário
normal de banco e assim saberá os GRANTs que a role precisará ou
pastas/registros que o Windows restringe o acesso.
Aqui no Brasil, boa parte dos programadores gostam de usar a conta de
administrador do Windows e repetem essa péssima prática usando as contas
sa, SYSDBA, dbo, root,.... dos outros bancos de dados, o qual divergirá do
cenário do ambiente de produção.

[]´s


Em qui., 26 de out. de 2023 às 07:12, Mário Reis via lista <
[email protected]> escreveu:

> Bom dia a todos os Companheiros,
> *Cannot update. (No update query)*
> Estou aqui, não exatamente para reportar um erro, mas antes a sua
> resolução. Estou a migrar para o FB4 e comecei, exatamente, por migrar as
> minhas funções das DLL para Funções Sql que são possíveis desde o FB3.0.
> Concomitantemente, aproveitei para fazer algo que esta necessitando fazer
> com urgência, migrar um campo NIB (N.º Interbancário [nacional]) de 21
> digits, dois dos quais [check digits] para IBAN:
> All EU countries using the [IBAN] (
> https://es.wikipedia.org/wiki/International_Bank_Account_Number)
> (International Bank Account Number) - que, basicamente, em Portugal se
> mantém o mesmo, mas ao qual foram juntos na frente + 4 digits "PT50".
> Comecei por aí refiz a função testei parecia perfeito funcionava sem bugs
> passei o banco em migração e tudo OK com o user SYSDBA.
> Porém,  do lado meu cliente (Delphi) o USER em teste tem credenciais bem
> mais baixas. O erro custou-me uns dias de mal dormir essa falta devido à
> falta do *GRANT EXECUTE*. Normalmente em debug os clientes Delphi ou
> C.Sharp dão erro nas tabelas sem autoridade para o USER.
> Aqui não deu apenas me deixava a DataSet com um trigger associado à
> Validação da minha função em read only com "Cannot update. (No update
> query)".
> Obrigado a quantos tentaram ajudar.
>
>
______________________________________________
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://www.firebase.com.br/pesquisa_lista.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.