[firebase-br] GRANT SELECT, INSERT, REFERENCES, UPDATE ON '||:OUT_TBLNAME||' TO ' ||:IN_USER
bzottis em ig.com.br
bzottis em ig.com.br
Seg Set 22 08:43:55 -03 2014
Eu faço isso voia script, ou seja, assim que crio o usuário, monto um
script com tudo o que preciso rodar para o usuário e rodo, mas isso é
feito via aplicação e não no banco.
mas nunca tive problemas.
Em 21/09/2014 23:10, Carlos H. Cantu escreveu:
> Dificil dizer alguma coisa sem ter mais detalhes da sequencia das
> operações envolvidas.
>
> Experimente tirar o SUSPEND (ele só é necessário em procedures
> selecionáveis).
>
> Certifique-se tb que o FOR SELECT está retornando alguma coisa o
> esperado.
>
> PS: Não acho uma boa idéia chamar a procedure a partir de um trigger,
> usando, portanto, uma mesma transação que executou tanto DML como DDL.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br [1] - www.firebirdnews.org [2]
> www.warmboot.com.br [3] - blog.firebase.com.br
>
> MR> Cantu,
>
> MR> Estou tentando dar um grant ou revoke geral depois de criar um user na
> MR> minha tabela e na security2, chamando a procedure abaixo duma trigger,
> MR> assim: AFTER_INSERT_OR_UPDATE: Execute Procedure SP$_GRANTS(NEW.Login)
> MR> returning_values...
> MR> ou BEFORE_DELETE Execute Procedure SP$_REVOKES(OLD.Login)
> MR> returning_values...
>
> MR> CREATE PROCEDURE SP$_GRANTS(
> MR> IN_USER VARCHAR(20) COLLATE PXW_INTL850)
> MR> RETURNS(
> MR> OUT_TBLNAME VARCHAR(50) COLLATE PXW_INTL850,
> MR> OUT_SQLTXT VARCHAR(100) COLLATE PXW_INTL850)
> MR> AS
> MR> BEGIN
>
> MR> /* Procedure body */
> MR> FOR
> MR> SELECT RDB$RELATION_NAME
> MR> FROM RDB$RELATIONS
> MR> WHERE RDB$VIEW_BLR IS NULL
> MR> AND (RDB$SYSTEM_FLAG = 0 OR RDB$SYSTEM_FLAG IS NULL)
> MR> INTO :OUT_TBLNAME
> MR> DO
> MR> BEGIN
> MR>
> MR> -- REVOKE SELECT, INSERT, REFERENCES, UPDATE ON ACRANIB38 FROM LEILA;
> MR> OUT_SQLTXT='GRANT SELECT, INSERT, REFERENCES, UPDATE ON
> MR> '||:OUT_TBLNAME||' TO ' ||:IN_USER ;
> MR>
> MR> EXECUTE STATEMENT :OUT_SQLTXT
> MR> WITH COMMON TRANSACTION
> MR> AS USER 'SYSDBA' PASSWORD 'deEpDown!23' ;
> MR>
> MR>
> MR> END
> MR>
> MR> SUSPEND;
> MR>
> MR> END;
>
> MR> O que lhe falta ? Porque não funciona nem dá Erro?
> MR> Obrigado
>
> MR> Mário
>
> MR> ______________________________________________
> MR> FireBase-BR (www.firebase.com.br [4]) - Hospedado em www.locador.com.br [5]
> MR> Para saber como gerenciar/excluir seu cadastro na lista, use:
> MR> http://www.firebase.com.br/fb/artigo.php?id=1107 [6]
> MR> Para consultar mensagens antigas: http://firebase.com.br/pesquisa [7]
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br [4]) - Hospedado em www.locador.com.br [5]
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107 [6]
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa [7]
Links:
------
[1] http://www.FireBase.com.br
[2] http://www.firebirdnews.org
[3] http://www.warmboot.com.br
[4] http://www.firebase.com.br
[5] http://www.locador.com.br
[6] http://www.firebase.com.br/fb/artigo.php?id=1107
[7] http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista