Restringindo o acesso por meio do ODBC para apenas visualizações de esquema SQL 2008

2

Eu sou muito verde para a segurança do SQL, então talvez alguém possa me ajudar. Temos um aplicativo de banco de dados que, quando instalado, concede por padrão o acesso à função pública a todas as tabelas no banco de dados. Quando você cria um usuário SQL, ele adiciona o usuário à função pública, para que novos usuários tenham acesso a todas as tabelas.

Precisamos conectar aplicativos ODBC de terceiros ao banco de dados. Criamos uma visualização que puxa de tabelas dentro do mesmo banco de dados e queremos que a conexão tenha acesso apenas às visualizações criadas. Em vez de tentar remover a função pública de todas as tabelas, decidimos usar esquemas para aplicar segurança.

Todas as tabelas padrão estão em SCHEMA1 . Colocamos o VIEW em SCHEMA2 , e criamos USERA negando SELECT a SCHEMA1 , e concedemos SELECT a SCHEMA2 . Ambos SCHEMAS têm o mesmo proprietário.

Quando eu testo o ODBC usando o Access e tento abrir o VIEW , recebo o seguinte erro

The SELECT permission was denied on the object (table name in SCHEMA1)....

Suponho que é porque neguei SELECT a SCHEMA1 , que contém as tabelas referenciadas para o VIEW . Se for esse o caso, como você restringiria o acesso a apenas tabelas específicas por meio do ODBC?

Depois que postei isso, comecei a pesquisar um pouco mais sobre como revogar as permissões de função pública do esquema como uma opção possível, mas não testou, mas também deparei com a 'função de aplicativo'. Eu ainda preciso ler um pouco mais, mas me pergunto se essa é a direção que eu deveria seguir.

    
por user160456 18.02.2013 / 05:30

0 respostas