Segurança integrada do SQL Server sem o SQL Server Management Studio
-
11-12-2019 - |
Pergunta
Eu estou usando segurança integrada em um ASP.net aplicação, o IIS e SQL Server são hospedados no mesmo computador servidor executando o Windows Server 2008 R2.
É possível permitir que os usuários acessem o aplicativo a partir de toda a rede E usuários logados, mas não deixá-los a acessar o banco de dados diretamente ou através do SQL Server Management Studio?
Eu estou tentando salvaguardar o acesso ao banco de dados, porque a minha ideia é que o aplicativo seja implantado no servidor do cliente no cliente do local.
Aqui está a minha seqüência de caracteres de conexão que eu estou usando atualmente
<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />
<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="MainAppConnectionString" providerName="System.Data.SqlClient" />
Estas são as duas seqüências de caracteres de conexão que eu estou usando atualmente, um é para ASP.net a Autenticação e a segunda é usada pelo meu aplicativo.Estas seqüências de caracteres são iguais e do mesmo banco de dados.
Alguma sugestão?
Solução
Não é possível a "proteger" um banco de dados em execução no cliente local.Equipe do cliente pode obter a senha do ASP.Net seqüência de caracteres de conexão.Um administrador de domínio pode sempre acessar o banco de dados (não é um artigo do MSDN, descrevendo o processo: Conectar-se ao SQL Server Quando os Administradores de Sistema Estão Bloqueados).
Se você deseja ocultar a Propriedade Intelectual sentir seu banco de dados, então a única solução é não implantar o banco de dados no cliente premissa (usar um banco de dados hospedado como o SQL Azure, por exemplo).
Se você simplesmente quer evitar o cliente de interferir com o banco de dados que você pode estipular isso no contrato.Auditoria e detecção de interferências é possível.
Outras dicas
Sim, isso é completamente possível.Uma Pessoa registrada no ASP.NET usando segurança integrada não pode fazer logon no SQL Server com as mesmas credenciais.Ambos são completamente desconectado.Isso só é possível se o SQL Server foi configurado para permitir-lhes o acesso.
Meu conselho seria para criar Logon do SQL e usuários, e apenas dar-lhes acesso ao SQL Server.Na sua aplicação, quando você criar a Seqüência de caracteres de Conexão, não defina a segurança integrada para verdadeiro, e apenas permitir que o usuário digite seu Sql nome de usuário e senha para acessar o banco de dados.