Re: [firebase-br] Revoke do PUBLIC

Mário Reis via lista <[email protected]>
Newsgroups gmane.comp.db.firebase.portuguese
Message-ID <CAF_dzr=tHZXj=y5_kr9D3dXndy-5tFdDnbDnsf76Bhi0+qXg6g@mail.gmail.com>
Esqueça por favor. Consegui resolver e funciona claro.
Como pode servir a mais alguém deixo aqui o meu exemplo feito a partir
daquele outro que vem com a documentação, mas que não havia necessitado
usar até hoje.
Esqueci o EXECUTE BLOCK RETURNS (CONN INT, TRAN INT, DB VARCHAR(255)) ....
e passeio importante para uma Stored Procedure com alguns parâmetros e
outros talvez ainda a acrescer o vai dar muito jeito.
Aqui deixo a minha source:
CREATE PROCEDURE CONSULTA_EXTERNA(
  IN_USER TYPE OF USERID,
  IN_PWD VARCHAR(20),
  IN_ID SMALLINT)
RETURNS(
  OUT_ID INTEGER,
  OUT_NOSOC SMALLINT,
  OUT_NOME VARCHAR(50),
  OUT_APELIDO VARCHAR(20),
  OUT_DTADM TYPE OF COLUMN SOCIOS.DATADM)
AS
DECLARE VARIABLE SDB VARCHAR(255);
DECLARE VARIABLE SSQL VARCHAR(255);
BEGIN

 sDB='<MYDINAMIC_IP>/3058:D:\Firebird\Fb30\WORK\MyDB.FDB';
  sSql=
    ' Select P.Pessoa_id, P.Nome, P.Apelido, S.NOSOC_ID, s.DATADM From
Pessoas P '||
    ' Inner Join Socios S on S.Socios_ID=P.Pessoa_Id '||
    ' Where S.NOSOC_ID *>=* '||TRIM(CAST( :IN_ID AS VARCHAR(15)) ) ;

  FOR
      EXECUTE STATEMENT
      ( :sSql )
      ON EXTERNAL DATA SOURCE :sDB
      AS USER *:IN_USER* PASSWORD *:IN_PWD  *
      WITH COMMON TRANSACTION
      INTO :OUT_ID, :OUT_NOME, :OUT_Apelido , :OUT_NoSoc,:OUT_DTADM

   DO SUSPEND;  -- acaba com o ciclo e "despeja tudo no ecran"!

END;
  Significará que o *DO SUSPEND*, lá por de trás terá um cursor. Saberá
como pegá-lo?
Com os meus melhores cumprimentos
Mário Agostinho Reis
919262146

Esta mensagem contém informação de natureza confidencial e é
exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
receber este email agradecemos que não o copie nem o reenvie e que nos
notifique do ocorrido através do email de resposta.


Mário Reis <[email protected]> escreveu no dia sábado, 16/09/2023 à(s)
19:09:

> Então as minhas fontes, com LibreOffice, com macros algo bugadas, fazendo
> conexão a uma <FB> database sempre lhe serviram para alguma carta?
> Lembra-se de lhe ter dito que  GET_ROUND_AS_ABNT não compilava aqui pois
> parece que algum tempo antes já a teria compilado...
>
> *Bem se puder ajudar com um exemplo funcional de *"ON EXTERNAL DATABASE"
> é que na rede não encontro um que funcione!
>
> A ideia é a partir de uma tabelas da database velha fazer upgrade da nova
> migrada
>  select * from pessoas p where p.id=???
>   ON EXTERNAL MYIP:D:\trab\db\MYdatabase
> as user 'SYSDBA' PASSWORD 'masterkey'
> with common transaction
> INTO: FieldVArs1...2...3...4.
> e tem como correr isso num query?
> Obrigado
> Mário Reis
> 919262146
>
> Esta mensagem contém informação de natureza confidencial e é
> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
> receber este email agradecemos que não o copie nem o reenvie e que nos
> notifique do ocorrido através do email de resposta.
>
>
> Mário Reis <[email protected]> escreveu no dia sábado, 5/08/2023
> à(s) 12:23:
>
>> Boas Gladison,
>> CREATE FUNCTION GET_ROUND_AS_ABNT... NÃO COMPILAM mais! Os PARÂMETROS DE
>> Round() não estão bem!
>> Com os meus melhores cumprimentos
>> Mário Agostinho Reis
>> 919262146
>>
>> Esta mensagem contém informação de natureza confidencial e é
>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
>> receber este email agradecemos que não o copie nem o reenvie e que nos
>> notifique do ocorrido através do email de resposta.
>>
>>
>> Gladiston Santana <[email protected]> escreveu no dia sexta,
>> 4/08/2023 à(s) 18:09:
>>
>>> Boa tarde!
>>> A função round pode retornar tanto inteiro como float:
>>>
>>> https://firebirdsql.org/file/documentation/html/en/refdocs/fblangref40/firebird-40-language-reference.html#fblangref40-scalarfuncs-round
>>>
>>> Às vezes o arredondamento não é do jeito que a gente quer, daí
>>> adaptações precisam ser feitas, por exemplo, aqui no Brasil temos um tipo
>>> de arredondamento usando uma norma ABNT que difere completamente do padrão
>>> sql-92, daí temos que criar uma sqlfunction adaptando a partir de uma
>>> função mais próxima. Veja esse exemplo:
>>> https://gladiston.net.br/banco-de-dados/arredondamento-do-tipo-abnt/
>>>
>>> Sabendo um pouco de psql vamos suprindo funções que não existem, se
>>> quiser pode pegar emprestado as que publiquei na minha pagina pessoal:
>>> https://gladiston.net.br/banco-de-dados/
>>>
>>> Em qui., 3 de ago. de 2023 às 21:37, Mário Reis <[email protected]>
>>> escreveu:
>>>
>>>> Boa tardes Gladison
>>>>
>>>> Você diz que há muito não usa udfs.
>>>> Estou tentando o mesmo mas esbarro em algumas dificuldades.
>>>> Ex: udf_rounddec(X, y) tentei o round(x, y) mas não é o mesmo. Retorna
>>>> um inteiro enquanto o outro retorna um double.
>>>> Como fazer num caso destes. Conhece o substituto? Obrigado
>>>>
>>>> Mário Reis (919262146)
>>>>
>>>> A quarta, 2 de ago de 2023, 17:03, Mário Reis <[email protected]>
>>>> escreveu:
>>>>
>>>>> Disponível para qualquer coisa. Embora com tempo mesmo escasso, sempre
>>>>> se arranja uma brecha.
>>>>> E, não está pronto porque ainda falta fazer o registo de
>>>>> correspondência de modo automática e enviar por mail.
>>>>> Nesta última parte, não faço, ainda, a menor ideia de como irei fazer,
>>>>> mas hei-de lá chegar.
>>>>> Atentamente
>>>>> Com os meus melhores cumprimentos
>>>>> Mário Agostinho Reis
>>>>> 919262146
>>>>>
>>>>> Esta mensagem contém informação de natureza confidencial e é
>>>>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
>>>>> engano,
>>>>> receber este email agradecemos que não o copie nem o reenvie e que nos
>>>>> notifique do ocorrido através do email de resposta.
>>>>>
>>>>>
>>>>> Mário Reis <[email protected]> escreveu no dia quarta, 2/08/2023
>>>>> à(s) 16:51:
>>>>>
>>>>>> O meu código está um pedaço (grande) sujo, mas se V. tiver pachorra
>>>>>> para dar um olhada e remover uns bugs  passo-te  já a seguir.
>>>>>> Eu antes nunca tinha trabalhado com basic de forma que ainda estou
>>>>>> tentando perceber o porque do "argument errors"
>>>>>> Com os meus melhores cumprimentos
>>>>>> Mário Agostinho Reis
>>>>>> 919262146
>>>>>>
>>>>>> Esta mensagem contém informação de natureza confidencial e é
>>>>>> exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por
>>>>>> engano,
>>>>>> receber este email agradecemos que não o copie nem o reenvie e que nos
>>>>>> notifique do ocorrido através do email de resposta.
>>>>>>
>>>>>>
>>>>>> Gladiston Santana <[email protected]> escreveu no dia
>>>>>> segunda, 31/07/2023 à(s) 17:43:
>>>>>>
>>>>>>> Bacana Mario,
>>>>>>>
>>>>>>> Depois se tiver um tempo, me fala como você faz o acesso do swriter
>>>>>>> ou scalc ao banco.
>>>>>>> Um banco bem modelado e feito direitinho com triggers e triggers
>>>>>>> disparando procedures pode funcionar sem um sistema e tô querendo
>>>>>>> demonstrar isso no futuro e explicar que o banco bem modelado pode
>>>>>>> funcionar sem um sistema complexo por trás.
>>>>>>>
>>>>>>> []´s
>>>>>>>
>>>>>>> Em qui., 27 de jul. de 2023 às 16:47, Mário Reis <
>>>>>>> [email protected]> escreveu:
>>>>>>>
>>>>>>>> Pois! Entendo o que diz. Por exemplo os meus usuários via swriter e
>>>>>>>> através de umas macros que ando a aperfeiçoar, em basic, acedem à tabela
>>>>>>>> clientes da m/ FDB.
>>>>>>>> Chamam um novo documento e ele valida user e pwd cria o documento
>>>>>>>> com. N⁰ único, referente e data e com um botão vai à tabela cliente e
>>>>>>>> carrega o endereço fiscal etc...o sequencial único é gerado à maneira
>>>>>>>> antiga, dis dois todos trás o último e acrescento +1 e gravo . Num pequeno
>>>>>>>> escritório está a funcionar e agora ninguém mais grava o documento novo em
>>>>>>>> cima do velho perdendo-o.
>>>>>>>> Mas aí entram todos como Leitor que só lê não faz mais nada.
>>>>>>>>
>>>>>>>> A quinta, 27/07/2023, 17:23, Gladiston Santana <
>>>>>>>> [email protected]> escreveu:
>>>>>>>>
>>>>>>>>> No caso de UDFs e SQL Functions é complicado saber quem irá usar
>>>>>>>>> ou não, como são objetos que apenas retornam dados então como política eu
>>>>>>>>> dou acesso a PUBLIC. Embora hoje, não uso mais UDFs.
>>>>>>>>> Acho que a prática mais eficiente para permissões é você criar uma
>>>>>>>>> role, digamos "ROLE_VENDAS" e aplicar os acessos que o sistema de vendas
>>>>>>>>> precisa ter a este role. Daí quem se logar usando o sistema de vendas
>>>>>>>>> identifica-se com user_name, password, database, host e enfim ocultamente
>>>>>>>>> dentro do seu programa você informa também a ROLE_VENDAS e obterá todos os
>>>>>>>>> acessos necessários. Daí é só ficar associando usuários do sistema de
>>>>>>>>> vendas a ROLE_VENDAS, é muito mais fácil gerenciar dessa forma ao invés de
>>>>>>>>> individualmente, até porque, um usuario mal intencionado pode praticar
>>>>>>>>> modificações por fora do sistema usando um excel da vida.
>>>>>>>>>
>>>>>>>>> De inicio, voce pode criar uma ROLE_ADMIN e dar um "grant all to
>>>>>>>>> all" nela e associar todos os usuarios a ela e logar-se no sistema sempre
>>>>>>>>> usando esta ROLE. Daí ninguem mais reclama de acesso e por fora do
>>>>>>>>> sistema(ex. excel) o usuario não terá acesso algum, a menos que
>>>>>>>>> voce forneça o nome da role para ele.
>>>>>>>>>
>>>>>>>>> inte+
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Em qui., 27 de jul. de 2023 às 07:41, Mário Reis <
>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>
>>>>>>>>>> Gladiston um bom dia para você,
>>>>>>>>>> Não não causou qualquer erro, pelo contrário ao fazer to public
>>>>>>>>>> os outros usuários não ficavam autorizados e conferi várias vezes o
>>>>>>>>>> *commit*
>>>>>>>>>> Há uma possibilidade de haver algum bug na ferramenta que uso o
>>>>>>>>>> EMS Sql Manager. Tive que fazer um script "à lá mano" com editor de texto e
>>>>>>>>>> depois correr
>>>>>>>>>> GRANT EXECUTE ON FUNCTION UDF_YEAR TO PUBLIC, + lista;
>>>>>>>>>> Eu achei muito estranho, pois de acordo com a documentação é como
>>>>>>>>>> você diz. Já escrevi para eles, que validaram o erro e propõem-se corrigir
>>>>>>>>>> na próxima release.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Gladiston Santana
>>>>>>> Escritório: 4787-3122 Ramal 228
>>>>>>> Cel Tim/WhatsApp: (11)95144-8188
>>>>>>>
>>>>>>
>>>
>>> --
>>> Gladiston Santana
>>> Escritório: 4787-3122 Ramal 228
>>> Cel Tim/WhatsApp: (11)95144-8188
>>>
>>
______________________________________________
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.