.Net SQL Server连接字符串 - 隐藏其他开发人员的密码

时间:2010-06-01 21:08:03

标签: asp.net sql-server connection-string password-protection

我们将其中一个网站迁移到ASP.Net。我们不想使用集成安全性,它使用Windows帐户连接到SQL服务器(不会进入原因,它只是不可能)。我们创建了一个用户名和密码来连接到SQL Server,并希望使用该用户名和密码,但是,我们也不希望其他开发人员看到这些信息(很容易从web.config中读取)....我知道它可以加密,但它可以很容易地被开发人员解密 - 加密性能也会受到影响。

这个问题有解决办法吗?

5 个答案:

答案 0 :(得分:2)

这是关于Encrypting Configuration Information in ASP.NET 2.0 Applications

的好教程

只是不要给其他开发者提供密钥

或者,您可以通过已安装的证书锁定SQL的身份验证。这样您就可以基于客户端而不是用户来设置安全性。 http://msdn.microsoft.com/en-us/library/ff649255.aspx

我们的标准做法是在开发数据库中使用一个“开发人员登录”,该数据库具有有限的访问权限,并且生产框具有不同的用户名/密码。开发人员无权访问生产框,只能访问开发人员,然后通过部署脚本复制生产web.config。

答案 1 :(得分:0)

开发人员是否需要访问web.config文件?如果是这样,我想你可能会失败。如果没有,意味着他们不需要更改web.config文件,请更改其权限,以便只有管理员和asp.net进程才能读取该文件。

答案 2 :(得分:0)

根据我的经验,往往难以从内部开发者那里隐藏那种东西。如果您的开发人员只是单步执行代码,即使加密webconfig中的配置infhaamtion也会显示...

我猜想,如果你这样做,你可以在你的数据库字符串的代码中创建一个私有常量字符串,然后在编译的应用程序上使用Dotfuscator或类似的。显然,源代码本身也必须加密,否则开发人员无法访问它。

答案 3 :(得分:0)

您无法真正保护开发人员的密码 - 此外,它有什么意义? 你可以做的就是拥有独立的开发服务器,开发人员可以访问这些开发服务器,并且他们没有这些开发服务器。

开发人员是否需要直接登录数据库才能运行某些测试?如果他们这样做,使用应用程序使用的相同帐户进行测试是有意义的,否则测试结果可能无法反映现实。

答案 4 :(得分:0)

prompt for the password,当您第一次连接并在会话中跟踪passowrd时。现在只有你能够从任何地方连接数据库。将所有这些应用程序不可用的页面重定向到其他没有密码的用户。