我使用标准SQL Server身份验证将CakePHP连接到SQL Server数据库。如果我想通过Windows身份验证进行连接而有人试过这个吗?
首先,我认为它需要使用SQL Server drivers,而不是标准的MSSQL PHP驱动程序,以便PHP本身可以使用Windows身份验证。然后是替换CakePHP中所有位置的问题,假设它使用/app/core/database.php配置文件。
有没有人尝试过使用带有CakePHP的SQL Server驱动程序或更好的尝试Windows身份验证?或者只是可能它不值得麻烦。
答案 0 :(得分:0)
用羽毛打击我,我会被诅咒所有......经过一些研究,我尝试在PHP中使用mssql驱动程序启用NT身份验证。
主要的PHP网站在评论中有一个很好的explanation:
对于我的设置(Windows Server 2003,IIS 6,PHP 5.2.6,SQL Server 2005 企业)使用成功连接的关键 mssql_connect正在将PHP从ISAPI模式改为FastCGI模式。
1)我从Microsoft下载并安装了适用于IIS 6的FastCGI http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1521
2)我 修改了我的PHP安装,使其在FastCGI模式下运行。
3)打开 fcgiext.ini并将其添加到最后。
[Types] php=PHP
[PHP] ExePath=c:\PHP\php-cgi.exe InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
4)我在{; 1}添加了
cgi.force_redirect=0
默认超时时间 基于套接字的流(秒)“PHP.ini的部分5)我确定了 我的SQL数据库设置为Windows身份验证模式,我也是 在php.ini中将
mssql.secure_connection
切换为on。6)创造了一个 NT AUTHORITY \ NETWORK SERVICE的SQL登录并给它相应的 对我的数据库的权限。
7)重新启动服务器
然后我添加了IUSR(IIS域帐户)作为SQL Server的登录名和一个具有db_readers和db_writer权限的{mydatabase_iis}用户,它实际上有效。
重新创建的步骤:
似乎CakePHP非常乐意使用database.php文件作为数据库名称,我认为SQL Server只是忽略了那里给出的用户名和密码,并使用了Windows身份验证。