Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP IIS和SQLSRV |用户登录失败';NT授权\匿名登录';_Php_Iis_Sqlsrv - Fatal编程技术网

PHP IIS和SQLSRV |用户登录失败';NT授权\匿名登录';

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使用应用程序池的标识,

我知道之前有人问过我要问的问题的一些版本,但没有什么像我需要帮助那样具体

我设置了一个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,尽管我认为这不重要

fastcgi.impersonate = 0

简而言之,我只想强制PHP使用应用程序池作为用于查询SQL的标识。有人知道我做错了什么吗?

我知道了,它确实需要设置为:

fastcgi.impersonate=0

它以前不起作用的原因是它在php.ini中第二次被引用到较低的位置,因此我对较高位置的编辑被覆盖

要清楚地帮助别人

  • 用户IIS上的Windows身份验证工作正常,与PHP到SQL无关
  • 使用fastcgi.impersonate=0似乎可以让SQLSrv驱动程序使用我想要的应用程序池ID

如果您能接受您的答复,我们将不胜感激。谢谢。我会的,还有30分钟