Esconder campo - Role

Firebird

08/11/2004

Pessoal queria aprender sobre role, entrei aqui e no pesquisar consegui as informacoes que precisava, so fiquei com algumas duvidas.

Eu fiz um role e dei as permissoes que gostaria, porem nao sei se tem como ao dar um select nao me retornar o valor do SALARIO, eu entro com o usuario com o role, porem ao dar select * from Funcionarios volta sempre o valor do salario tbm, nao sei se tem como ´esconder´ esse campo, ou se ele so seria escondido no delphi mas o banco de dados o retornaria, se alguem ja vez algum sistema assim poderia me dizer que metodo utilizou para em determinado ROLE nao retornasse alguns campos.

E aproveitando tenho um livro que mostra como faz no delphi para determinado usuario abilitar ou nao os menus, utilizando o ActionList, sera que isso seria a melhor maneira?

Desde ja agradeco.


Renato_sp

Renato_sp

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

08/11/2004

A maneira mais simples de ´esconder´ campos é criar uma view que retorne só os campos desejados e dar permissões para o role na view e não na tabela base.


GOSTEI 0
Renato_sp

Renato_sp

08/11/2004

Entao o correto seria fazer uma view e dar permissoes a ela... pensei que dava para nao trazer determinado campo, valeu mesmo.

E aproveitando que significa o Reference? nao consegui compreender direito, e tbm tem la execute que ta desabilitado, para que ambos serve?

Muito obrigado. Valeu


GOSTEI 0
Afarias

Afarias

08/11/2004

|E aproveitando que significa o Reference? nao consegui compreender
|direito, e tbm tem la execute que ta desabilitado, para que ambos
|serve?

EXECUTE serve para dar privilégios de execução em procedimentos

GRANT EXECUTE ON PROCEDURE_TAL TO ROLE_TAL;


REFERENCES serve apenas para campos q pertencem a chaves primárias. É usado para permitir q tabelas façam referência (FOREIGN KEY) a outras tabelas q o usuário não tem acesso.

Por exemplo::

vc tem 2 tabelas::

VENDAS (DATA, ITEM_CODIGO, TOTAL) e ITENS (CODIGO, NOME)

onde vc tem a relação VENDAS.ITEM_CODIGO = ITENS.CODIGO

o usuário X tem acesso a tabela VENDAS mas não tem acesso a tabela ITENS -- para q ele possa fazer uso da relação acima, ele deve ter pelo menos direito de REFERENCES na tabela ITENS

grant references on itens to x;

assim, ele não tem acesso a tabela ITENS mas a relação continua ´funcionando´


T+


GOSTEI 0
POSTAR