locked
Application role RRS feed

  • Pergunta

  • Bom dia amigos,
    Estou nestes dias reestruturando a segurança do meu servidor SQL Server, existe uma política de segurança muito rigorosa na minha organização que me fez contatar com os fornecedores dos sistemas e abrir uma discussão sobre a necessidade "imposta" por eles da criação de conta de conexão ao database ser db_owner ou db_ddladmin. Neste caso dei a opinião para customizarem as suas aplicações para permitir a utilização de um application role senão provavelmente teríamos que procurar outro sistema similar no mercado que possa estar alinhado com as nossas polítcas de segurança pois conexão com usuário único e com privilégios "administrativos" não será permitido. Amigos do fórum neste cenário "imposto" pelos fornecedores a dica sobre utilização de application role seria a melhor prática, ou existem outros meios mais correto? Outra dúvida, é necessário além da application role a criação do login do(s) usuário(s) normalmente, pois é ela que fará a conexão inicial ao database, sendo da role public ou db_datareader e db_datawriter, perfeito ?

    Muito Obrigado,

    Bruno Santos

    sábado, 1 de março de 2008 10:46

Respostas

  • Boa Tarde,

     

    Estou bastante surpreso e de certa forma feliz em ver que em certos lugares a segurança é levada muito a sério. Na maioria das organizações que encontro costumo ver muitos usuários como db_owner, sa e quando há alguma segurança, basta que apareça algum produto que "precisa entrar" ou alguma ferramenta de terceiros e a segurança fica em segundo plano.

     

    A application role é um recurso muito interessante para se gerenciar segurança. Através da ativação da senha, temos a certeza de que apenas pela aplicação será possível realizar as operações de banco de dados. No entanto, ela possui dois pontos fracos:

     

    - O fato da ativação estar vinculada a uma senha pode exigir que você tenha que recompilar seu código na hipótese da senha mudar
    - A application role tem escopo de banco, e se você precisar acessar recursos em mais de um banco e até entre outros servidores, após sair do banco, a application role perde seu efeito.

     

    O SQL Server 2005 evolui a application role permitindo o uso de certificados. A utilização de certificados permite que se use um contexto além do banco de dados e também evita a necessidade de habilitar o Cross Database Ownership Chaining.

     

    Se você possui a maioria das suas aplicações acessando um banco só, então a application role é perfeita. Se as aplicações entre bancos precisarem ir um pouco mais além, o uso de certificados é excelente. O problema é que ele só está disponível no SQL Server 2005.

     

    Para ativar a application role, é necessário que o usuário consiga conectar-se ao banco de dados com um login separado. Após ele conectar-se é que a aplicattion role entra em cena (ativação via senha). Isso fará com que o usuário tenha as permissões da application role (e perca as dele) até que a conexão seja finalizada. Dessa forma, mesmo que o usuário se conecte ao banco nada poderá fazer, porque a ativação da application role estará na aplicação.

     

    [ ]s,

     

    Gustavo

    sábado, 1 de março de 2008 20:08

Todas as Respostas

  • Boa Tarde,

     

    Estou bastante surpreso e de certa forma feliz em ver que em certos lugares a segurança é levada muito a sério. Na maioria das organizações que encontro costumo ver muitos usuários como db_owner, sa e quando há alguma segurança, basta que apareça algum produto que "precisa entrar" ou alguma ferramenta de terceiros e a segurança fica em segundo plano.

     

    A application role é um recurso muito interessante para se gerenciar segurança. Através da ativação da senha, temos a certeza de que apenas pela aplicação será possível realizar as operações de banco de dados. No entanto, ela possui dois pontos fracos:

     

    - O fato da ativação estar vinculada a uma senha pode exigir que você tenha que recompilar seu código na hipótese da senha mudar
    - A application role tem escopo de banco, e se você precisar acessar recursos em mais de um banco e até entre outros servidores, após sair do banco, a application role perde seu efeito.

     

    O SQL Server 2005 evolui a application role permitindo o uso de certificados. A utilização de certificados permite que se use um contexto além do banco de dados e também evita a necessidade de habilitar o Cross Database Ownership Chaining.

     

    Se você possui a maioria das suas aplicações acessando um banco só, então a application role é perfeita. Se as aplicações entre bancos precisarem ir um pouco mais além, o uso de certificados é excelente. O problema é que ele só está disponível no SQL Server 2005.

     

    Para ativar a application role, é necessário que o usuário consiga conectar-se ao banco de dados com um login separado. Após ele conectar-se é que a aplicattion role entra em cena (ativação via senha). Isso fará com que o usuário tenha as permissões da application role (e perca as dele) até que a conexão seja finalizada. Dessa forma, mesmo que o usuário se conecte ao banco nada poderá fazer, porque a ativação da application role estará na aplicação.

     

    [ ]s,

     

    Gustavo

    sábado, 1 de março de 2008 20:08
  • Valeu Gustavo, não pensei nesses pontos "fracos", principalmente sobre a recompilação na necessidade de troca do password, sobre a conexão a vários databases não vejo tanto problema no momento pois 90% das minhas aplicações usam apenas um (1) database. A recompilação nas eventuais troca de password pode gerar um custo, tendo em vista que quase que a totalidade dos fornecedores de softwares poderão cobrar pelo serviço de implementação (mesmo que muito simples), normal... Vejo que o SQL Server 2005 implementou mais funcionalidades para segurança, vou comentar com o meu coordenador, como a organização trata a segurança da informação como algo muitíssimo importante acredito que compram a idéia de implementar o SQL Server 2005. 

     

    Obrigado companheiro,

     

    Bruno Santos

    domingo, 2 de março de 2008 13:24
  • Bruno,

     

    Meu amigo com este show de explicação do Gustavo, pode ter certeza que você vai conseguir encontrar ainda mais alguns pontos fracos.

     

    O cara é fera.

    segunda-feira, 3 de março de 2008 11:01
    Moderador