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