IIS7下的Web应用程序以“Windows集成安全性”方式连接到远程SQL Server

Vista最令人郁闷的地方是空间太大,所有软件都安装在其他盘,可是我25G的C盘也被蚕食一空。安装SQL Server 2005需要占用C盘800M-1G的空间,实在让人不忍心再去腾挪我那可怜的C盘了。

 

于是我便将肥大的SQL Server 2005安装到虚拟机上了,这样不会占用我那可怜巴巴2G左右的C盘剩余空间。

 

SQL Server 2005推荐使用“Windows集成身份验证”的方式来登录,因为安全性高。这种方式以前上班时应用在远程调试上:Visual Studio运行在XP下,而要测试软件在Vista下的行为,就弄个Vista的虚拟机远程调试,采用“Windows集成身份验证”。方法是在虚拟机上创建一个和外面XP中正在使用的用户一模一样的用户,所谓一模一样,就是用户名密码一样,并且密码非空(密码非空很重要!),其他诸如用户组、权限之类的无关紧要。然后使用VM的VS插件进行远程调试。

 

本次IIS7连接SQL Server仍然这个思路,方法就是:

 

1、SQL Server 2005中,服务器验证方式为“Windows身份验证模式”。(选混合模式的话本文讨论主题没有任何意义了。)

 

2、SQL Server 所在系统中创建用户组(我将其起名为SQLUsers),并创建一个带密码的用户(DBUser)隶属于该组,不需要从属于其他组(从属于Users组会出现在登录列表中,很烦)

 

3、到SQL Server 2005的“安全性/登录名”设置中以“Windows身份验证”方式添加SQLUsers组,并设置“用户映射”,给该组以对应数据库的访问权限。

 

4、到对应数据库中设置该登录名的“服务器角色成员身份”为db_datareader 和 db_datawriter。

 

5、到IIS所在的主机中添加密码相同的DBUser用户,无需隶属于任何组。

 

6、到IIS中创建新的“应用程序池”,在高级设置中设置“标识”为“自定义账户”,并选择DBUser填上密码。

 

7、将要访问SQL Server 的Web应用程序归属于该应用程序池,即可使用连接字符串“Server=主机名;Database=数据库;Integrated Security=true”访问数据库了,由于密码记录在IIS设置中,而不是连接字符串中,因此该连接有较高的安全性。

 

这是IIS 7使用“Windows集成安全性”访问远程SQL Server的方法。现在的问题就是:IIS所在主机没有给DBUser分配任何权限,该用户只是一个登录远程SQL Server的凭证。会不会因为缺少权限而产生其他的问题?

 

我测试了一下Web应用程序访问本地文件,访问本地Access数据库都是可以的。如果以后发现什么奇怪的问题,那先考虑一下,是否是因为DBUser没有权限而导致的。

你可能感兴趣的:(其他)