繁体   English   中英

匿名访问(IIS)和SQL Server

[英]Anonymous access (IIS) and SQL Server

我刚刚在雷德蒙德接受采访,他们向我询问了围绕asp.net的大量安全性问题。 他们提出的一个问题是如何配置安全的Intranet应用程序以使用约束委派来访问SQL Server。 在此方案中,AD用户帐户被委派访问SQL Server。 当然,完整的目的是:a)不在Web服务器(web.config)的任何地方存储任何用户名/密码,b)提供可在Active Directory中管理的抽象安全模型。

这让我想到这些年来我一直在为匿名访问配置我的网站。 通常,我将使用默认的匿名帐户运行我的IIS网站,并将连接字符串存储在web.config中(加密,有时以明文形式)。 当然,这需要您的SQL Server以混合模式运行。 所以我的问题是,如果我们根本没有将连接字符串存储在web.config中,并且只为特定网站创建了一个唯一的匿名域帐户,该帐户将在SQL Server中具有db_datareader访问权限? 有什么理由为什么这样做是个坏主意?

我试图想到所有这些都是个坏主意的场景,我唯一能想到的是“黑客”破坏了Web服务器上的代码,然后以某种方式访问​​了你的SQL Server。但是这可能发生在任何一种情况下。

有谁知道这里的最佳做法?

也许您可以使用ODBC为SQL Server连接创建DSN。 然后你的web.config只需要知道DSN。 这可能需要您使用System.Data.OleDb。 我从来没有见过在ASP.NET中使用的DSN,但它曾经是Classic ASP的标准。 我从来没有听说过Active Directory用于管理ODBC。

在我工作的地方,我们有一个在特定域帐户下运行的Windows服务。 该帐户在SQL Server中设置为登录,并且在其需要访问的数据库中具有匹配的用户。 我们从来没有遇到任何问题。

我认为最重要的是正确配置您的数据库用户(或角色),以便它只能访问所需的内容。

我已经考虑使用AD以与您在第一段中描述的方式类似的方式管理SQL访问。 (AD组 - > SQL Server登录 - >数据库用户 - >数据库对象)到目前为止,我能看到的唯一缺点是,如果用户直接连接到数据库,他们将绕过您在应用程序中的任何逻辑。 一个好处是,您知道域用户正在访问您的数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM