Quantas contas do banco de dados

3

Quantas contas de usuário devem ser configuradas para um determinado aplicativo? Onde deve ser a separação?

  • Deveria ser um login por aplicativo?
  • 1 Aplicativo por programa?
  • 1 para front end e backend?

Como você configura suas contas de banco de dados?

    
por C. Ross 05.05.2009 / 01:27

4 respostas

7

Eu configuraria:

  • a conta de administração de estoque que vem OOB. Use isso para coisas que nenhuma outra conta pode fazer. Mantenha-o trancado e só o retire quando não tiver escolha.
  • uma conta de administrador secundária, uma para cada administrador . Faça todo o seu trabalho diário de administrador nesta conta, mas nessas contas de administrador, omita os privilégios para o material realmente perigoso (DROP DATABASE, DROP SCHEMA, etc.), use o out- of-box conta de administrador mencionada acima para isso. (A ideia é forçar você a fazer login, pois outra conta deve ser um indicador mental de que você está prestes a fazer algo potencialmente prejudicial, também que as contas de administrador de trabalho diário podem ter um "interruptor de segurança" integrado a forma de privs ausentes para ações que poderiam prejudicar seu banco de dados)
  • se você estiver usando conexões baseadas em máquina (pool de conexões, conexões com proxy, etc.) use uma conta para isso. Conceda os privilégios mínimos necessários para que esta conta funcione (para evitar que a conta cause danos enormes através do DROP DATABASE, etc.)
  • se você tiver conexões diretas de usuários finais, uma conta para cada usuário final , a menos que seus usuários finais tenham uma ampla categoria e você não precise separar privs para essa categoria. Nesse caso, uma única conta para cada usuário grupo .

2009-07-03 Re-Edit for Clarity.

    
por 05.05.2009 / 01:46
5

Eu vou com: depende. Isso realmente depende de como seu banco de dados será usado. Cenários diferentes:

  • Aplicativo interno se conectando em nome do usuário. Nesse caso, criamos uma conta de serviço no domínio e concedemos acesso ao domínio. O aplicativo usa essa conta para todo o acesso ao banco de dados.
  • Aplicação de frente externa (Internet). Nesse caso, criamos um login do SQL Server porque os servidores da Web estarão na DMZ e, portanto, não estarão no domínio. O aplicativo usa essa conta para todo o acesso ao banco de dados.
  • O aplicativo Interal
  • passa as credenciais do usuário. Você vê isso com o SQL Server Reporting Services e outros casos em que a passagem das credenciais reais é importante (trilha de auditoria). Nesse caso, você provavelmente terá níveis diferentes de permissões. Cada nível deve ter o grupo de segurança de domínio apropriado do Windows. Usuários do Windows devem ser membros desses grupos. Esses grupos devem estar vinculados a funções de banco de dados definidas pelo usuário no banco de dados. Essas funções de banco de dados devem ter todas as permissões.
  • Acesso direto ao banco de dados. Você verá isso mais com o tipo de sistema de relatórios. Nesse caso, grupos de segurança do Windows novamente com acesso concedido por meio do uso de funções de banco de dados.
por 05.05.2009 / 02:04
3

Você terá várias respostas sobre isso.

Eu configuro contas de aplicativo único (leia "por aplicativo") que são usadas em sequências de conexão. Nenhum usuário (além do meu grupo de desenvolvedores) tem acesso direto ao banco de dados.

Eu trabalho principalmente em um ambiente corporativo de MS (.NET, SQL Server, Active Directory). Geralmente, a autenticação ocorre por meio do contexto de usuário conectado atual e de tabelas de segurança específicas do aplicativo. O código manipula a autenticação e obtém as autorizações do aplicativo do banco de dados. Isso tira muito do fardo da manutenção do usuário de mim e o coloca em nosso departamento de TI (política de senha e redefinições, expiração da conta, desativa, etc.).

    
por 05.05.2009 / 01:37
1
  • Acredito que é preciso haver pelo menos contas suficientes para que, se um db-client começar a causar problemas, você possa desativar essa conta sem desativar todo o acesso ao servidor
  • Normalmente, não usarei uma conta de configuração para acessar mais do que um único banco de dados.
  • Eu uso uma conta separada para um aplicativo da web em vez de um cliente interno.
por 05.05.2009 / 01:35