Tom*_*Tom 5 sql-server asp.net windows-authentication
有许多商业产品,它们为您提供了一个基于Windows的安装程序,用于配置您的应用程序和后端SQL Server数据库.通常,它会询问您是否要使用Windows或SQL Server身份验证连接到数据库.他们中的大多数建议使用Windows Auth,然后使用分配给db_owner数据库角色的网络服务帐户配置数据库.我了解Windows身份验证更安全,因为您不必在web.config中存储凭据并在对SQL Server进行身份验证时通过网络发送凭据,但这是生产环境的安全配置,其中网络服务帐户是或db_owner?我们应该注意哪些特定的风险?
谢谢StingyJack,
我听到你在说什么,他们必须首先以网络服务用户身份登录数据库.有一个简单的方法吗?
我真正想弄清楚的是,是否存在任何固有的风险,因为它是分配了db_owner角色的默认网络服务帐户.
是的,应用程序(及其任何用户)可能会执行 dbo 可以针对数据库执行的任何内容。删除表、从密码中选择 * 等。
如果您设置了针对 SQL 注入的预防措施,并使用适当的应用程序层安全性编写了应用程序,那么使用 Windows Auth 和 dbo 可能就可以了。
如果您正在处理非常敏感的数据,(尚)不信任应用程序,或者希望尽可能安全,那么您将必须在数据库层实现安全性。
例如,用户x可以访问表视图a和b以及视图c,而用户y只能访问视图c。您的应用程序必须以适当的用户身份进行连接才能访问正确的对象。