我知道我曾经问过的某些版本,但没有什么需要我帮助的地方。
我安装了Server 2016 IIS Box,使用Web Platform Installer 5.0部署了该版本(均为x64)的PHP 7.4和Microsoft SQL Server驱动程序。然后,我将IIS中的应用程序池的标识更改为域服务帐户domain \ svc-php
但是,当尝试连接到远程SQL Server时,出现以下错误:
用户“ NT AUTHORITY \ ANONYMOUS LOGON”的登录失败
现在,我知道如何在SQL中分配访问权限,我的主要问题是我希望PHP使用App Pool的身份,因此我可以在App Server和SQL Server之间使用Windows Auth,而不必使用SQL Auth。在“用户到应用程序”端,我希望在服务器本身上进行Windows身份验证,因此我知道谁正在登录,并且可以在IIS上启用Windows身份验证的情况下正常运行,我可以得到
$ _ SERVER ['AUTH_USER'] =域\用户名
我唯一想到的是假冒,应该以一种或另一种方式设置。我尝试将设置都设置为0以及不包括在内,并在PHPInfo()中更改了设置,但始终设置为1,尽管我认为这并不重要。
fastcgi.impersonate = 0
因此,简而言之,我只想强制PHP使用App Pool作为用于查询SQL的标识。有人知道我在做什么错吗?
我知道了,确实需要将其设置为:
fastcgi.impersonate = 0
之所以不起作用,是因为它在php.ini中第二次被引用较低,所以我对较高版本的编辑被覆盖了。
要清楚地帮助别人。...