嘿,我在web.config中有一个数据库设置,如下所示
<connectionStrings>
<add name="DBConnectionString" connectionString="server=serverName;database=dbName;user=dbuser;pwd=dbpass;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
用户名和密码的最佳做法是什么?是否最好只是编写一个更强的密码,即Iu5jku23这样的东西?
然后在SQL Server 2008中,当我的sql用户
时,用户的最佳设置是什么db_datareader db_datawriter db_owner db_securityadmin db_accessadmin
我应该删除的任何人?
答案 0 :(得分:1)
最佳做法是不以纯文本形式存储密码。始终使用强密码并对其进行加密,或使用集成身份验证。
关于数据库角色,使用db_owner,其余部分是多余的。
修改强>
关于加密web.config:看看 http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx 。您应该只向用户提供他们需要的东西。用户将需要对存储过程执行权限,并对procs触摸的任何基础表进行读/写操作。 db_datareader将允许对数据库中的所有内容进行读访问,同样使用db_datawriter(显然只有它的写访问权限)。
答案 1 :(得分:0)
Examples of Strong SQL Server passwords:
就设置权限而言,它实际上取决于您希望获得的粒度以及您希望攻击面区域的限制。
设置db_owner基本上允许该用户执行任何操作。因此,如果这个特定的“帐户”只需要读取数据并在网页上显示,那么datareader将是您最好,最安全的选择。
所以大多数事情都取决于你在做什么。