Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cristiano Ribiero

Permissão de usuário

Recommended Posts

Boa tarde,

 

BANCO: SQL SERVER 2000

SISTEMA OPERACIONAL: WINDOWS SERVER 2003

 

Estou com um problema referente a permissão de usuários.

Exemplo do problema:

 

Tenho duas bases, base A e base B.

O usuário TESTE tem direito de Db_acces e direito de select nessa view nas duas bases.

 

Na base A tenho os seguintes objetos:

Tabela - CADASTRO e VEICULOS

View - CONSULTA

 

Na base B tenho os seguintes objetos:

Tabela - CADASTRO e VEICULOS

 

A view foi criada da seguinte forma:

 

CREATE VIEW Consulta AS

SELECT A.NOME,

A.IDADE,

B.MARCA,

B.MODELO

FROM A.CADASTRO ,B..VEICULOS

 

Ocorre que se eu não der direito de select na tabela VEICULOS da base B o usuário TESTE não consegue exeutar o comand:

 

SELECT * FROM A.dbo.CONSULTA

 

ERRO:

SELECT permission denied on object 'Veiculos', database 'B', owner 'dbo'.

 

Eu não posso dar esse direito, pois se eu der direito de select nesta tabela o usuário vai ter direito de fazer qualquer select, e eu quero que ele so tenha direito de select em algumas colunas da tabela VEICULOS.

 

Existe alguma solução pra isso?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola.

 

Uma tentativa que você pode fazer seria:

 

1) Crie uma view vw_bancoB somente com os campos da tabela B..Veiculos que o usuario pode ter acesso.

 

2) Altere sua view consulta e ao inves de buscar as informacoes Marca e Modelo da B..VEICULOS, buscar da vw_bancoB.

 

3) de permissao de select ao usuario somente na vw_bancoB

 

Nao testei esta situacao, mas na teoria isto deve funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

 

Legal, entendi sua idéia, porém no exemplo que eu dei isso seria fácil de fazer, mas o problema é que se trata de várias tabelas e várias views, desta maneira essa solução seria impraticável dado a quantidade.

 

Sabe o que é mais engraçado? Se tanto as views como as tabelas estivessem no mesmo database, e eu desse direito apenas de select nas views para o usuário TESTE ele consegue dar select na view porém nas tabelas não, o mesmo não ocorre se a view estiver acessando dados de outro database.

 

Será que não existe outra alternativa?

 

Valeu!!!!

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.