none
Bloquear acesso a tabelas SQL RRS feed

  • Pergunta

  • Boa tarde companheiros! Seguinte, a base de dados do meu cliente vai precisar ser acessada por uma empresa de desenvolvimento de software, que vai prestar uma consultoria para ele. Com a ajuda do marco (aqui do fórum) consegui criar uma DLL que acessa o banco de dados com o login sa, cria um outro login com permissão apenas de leitura, e direciona para base de dados que eles querem acessar. Até ai perfeito. O problema é que mesmo esse login de leitura, vai conseguir acessar toda a base, deixando a estrutura criada por nós totalmente visível. Eu queria dar um comando que bloqueasse o acesso a algumas tabelas do BD, diminuindo a visibilidade da estrutura do meu sistema. Não sei se isso é possível mas imagino que sim... De qualquer forma, agradeço a todos pela atenção. Abraços.
    sexta-feira, 15 de abril de 2011 16:46

Respostas

  • Boa Noite,

    Você pode negar acesso às tabelas com o comando DENY. Ex:

    DENY SELECT, INSERT, UPDATE, DELETE ON Tabela TO UsuarioDeLeitura
    

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar sábado, 16 de abril de 2011 04:21
    • Marcado como Resposta andersonbtr terça-feira, 27 de dezembro de 2011 13:25
    sábado, 16 de abril de 2011 04:21
  • Anderson,

    Você pode criar um outro login no banco de dados e utilizá-lo na sua DLL, ao invés do SA (por questões de segurança, recomendo isso com muita força). Para esse novo login, você concede acesso somente ao banco que você deseja. Caso deseje mais restrições, você pode, seguindo orientações já postadas, dar grant select naquelas tabelas que esse novo usuário pode enxergar. Caso queira um exemplo, me contacte.



    SQL SERVER sempre
    • Marcado como Resposta andersonbtr terça-feira, 27 de dezembro de 2011 13:25
    quarta-feira, 20 de abril de 2011 12:30

Todas as Respostas

  • Uma ideia seria criar VIEWS e dar permissão apenas para elas...
    sexta-feira, 15 de abril de 2011 16:56
  • Certo Ivan, porém desculpe minha ignorância, mas como ficariam as consultas através das VIEWS? E outra coisa, como eu iria atribuir essas VIEWS ao login que eu criei para eles acessarem o sistema?

    sexta-feira, 15 de abril de 2011 17:13
  • Boa Noite,

    Você pode negar acesso às tabelas com o comando DENY. Ex:

    DENY SELECT, INSERT, UPDATE, DELETE ON Tabela TO UsuarioDeLeitura
    

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar sábado, 16 de abril de 2011 04:21
    • Marcado como Resposta andersonbtr terça-feira, 27 de dezembro de 2011 13:25
    sábado, 16 de abril de 2011 04:21
  • Anderson,

    Você pode criar um outro login no banco de dados e utilizá-lo na sua DLL, ao invés do SA (por questões de segurança, recomendo isso com muita força). Para esse novo login, você concede acesso somente ao banco que você deseja. Caso deseje mais restrições, você pode, seguindo orientações já postadas, dar grant select naquelas tabelas que esse novo usuário pode enxergar. Caso queira um exemplo, me contacte.



    SQL SERVER sempre
    • Marcado como Resposta andersonbtr terça-feira, 27 de dezembro de 2011 13:25
    quarta-feira, 20 de abril de 2011 12:30