PHP IIS和SQLSRV |用户登录失败';NT授权\匿名登录';
我知道之前有人问过我要问的问题的一些版本,但没有什么像我需要帮助那样具体 我设置了一个Server2016 IIS框,使用Web平台安装程序5.0为该版本(均为x64)部署PHP7.4和MicrosoftsSQLServer驱动程序。然后,我将IIS中应用程序池的标识更改为域服务帐户domain\svc php 但是,当尝试连接到远程SQL Server时,出现以下错误: 用户“NT授权\匿名登录”登录失败 现在我知道了如何在SQL中分配访问权限,我的主要问题是我希望PHP使用应用程序池的标识,这样我就可以在应用程序服务器和SQL服务器之间使用Windows Auth,而不必使用SQL Auth。在用户到应用端,我希望在服务器上进行windows身份验证,这样我就知道谁正在登录,这是可行的,在IIS上启用windows身份验证后,我可以获得 $\u服务器['AUTH\u USER']=domain\usersname 我想到的唯一一件事就是模拟应该设置成这样或那样。我尝试过将设置为0,也尝试过不包含,并且在PHPInfo()中更改了设置,设置总是1,尽管我认为这不重要PHP IIS和SQLSRV |用户登录失败';NT授权\匿名登录';,php,iis,sqlsrv,Php,Iis,Sqlsrv,我知道之前有人问过我要问的问题的一些版本,但没有什么像我需要帮助那样具体 我设置了一个Server2016 IIS框,使用Web平台安装程序5.0为该版本(均为x64)部署PHP7.4和MicrosoftsSQLServer驱动程序。然后,我将IIS中应用程序池的标识更改为域服务帐户domain\svc php 但是,当尝试连接到远程SQL Server时,出现以下错误: 用户“NT授权\匿名登录”登录失败 现在我知道了如何在SQL中分配访问权限,我的主要问题是我希望PHP使用应用程序池的标识,
fastcgi.impersonate = 0
简而言之,我只想强制PHP使用应用程序池作为用于查询SQL的标识。有人知道我做错了什么吗?我知道了,它确实需要设置为: fastcgi.impersonate=0 它以前不起作用的原因是它在php.ini中第二次被引用到较低的位置,因此我对较高位置的编辑被覆盖 要清楚地帮助别人
- 用户IIS上的Windows身份验证工作正常,与PHP到SQL无关
- 使用fastcgi.impersonate=0似乎可以让SQLSrv驱动程序使用我想要的应用程序池ID