Esconder campo - Role
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.
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
Curtidas 0
Respostas
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
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
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
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+
|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