Compartilhar via


Segurança em LINQ to SQL

Os riscos de segurança são sempre presentes em que você se conecta a um base de dados. Embora LINQ to SQL pode incluir algumas novas maneiras de trabalhar com dados no SQL Server, não fornece os mecanismos de segurança adicionais.

Controle de acesso e autenticação

LINQ to SQL não tem seu próprio mecanismos de modelo ou de autenticação de usuário. Use a segurança do SQL Server para controlar o acesso a base de dados, para tabelas de base de dados, modos de exibição, e procedimentos armazenados que são mapeados para o seu modelo de objeto. Conceda acesso mìnima necessário aos usuários e requer senhas de alta segurança para autenticação de usuário.

Mapeamento e informações de esquema

O mapeamento de tipo de SQL-CLR e informações do esquema de base de dados no seu modelo de objeto ou arquivos de mapeamento externo estão disponíveis para todos com acesso 2 esses arquivos no sistema de arquivos. Assuma que as informações do esquema estarão disponíveis para todos que puderem acessar o modelo do objeto ou o arquivo de mapeamento externo. Para evitar o acesso mais amplo às informações do esquema, use os mecanismos de segurança de arquivo para proteger as fontes do arquivo e os arquivos de mapeamento.

Cadeias de Conexão

Usar senhas em cadeias de conexão deve ser impedida sempre que possível. Não é apenas uma cadeia de conexão um risco para a segurança em próprio, mas a cadeia de conexão também pode ser adicionada em texto não criptografado para o modelo de objeto ou arquivo de mapeamento externo ao usar a ferramenta de linha de comando Object Relational Designer ou de SQLMetal. Qualquer pessoa com acesso ao modelo de objeto ou arquivo de mapeamento externo através do sistema de arquivos pode ver a senha de conexão (se é incluído na cadeia de conexão).

Para minimizar como riscos, use segurança integrada para fazer uma conexão confiável com SQL Server. Usando essa abordagem, você não tiver que armazenar uma senha na cadeia de conexão. Para obter mais informações, confira Blog de segurança do SQL Server.

Na ausência de segurança integrado, uma senha de texto não será necessária na cadeia de conexão. A melhor maneira para ajudar a proteger a cadeia de conexão, na ordem crescente de risco, é a seguinte:

  • Use segurança integrada.

  • Proteger cadeias de conexão com senhas e minimizar passar ao redor de cadeias de conexão.

  • Use uma classe de System.Data.SqlClient.SqlConnection em vez de uma cadeia de conexão já que limita a duração de exibição. A classe LINQ to SQL System.Data.Linq.DataContext pode ser instanciada usando SqlConnection.

  • Minimize o tempo de vida e toque em pontos para todas as cadeias de conexão.

Confira também