[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