好吧,用羽毛吹我,我會被詛咒,所有......經過一番研究,我嘗試在PHP中使用mssql驅動程序打開NT身份驗證。
主要的PHP網站在評論一個很好的explanation:
我的設置(Windows Server 2003中,IIS 6,PHP 5.2.6,SQL Server 2005中 企業)的關鍵,獲得成功使用 連接mssql_connect正在將PHP從ISAPI模式更改爲FastCGI模式。
1)我下載並從Microsoft http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1521
2)安裝了FastCGI的IIS 6我 修改我的PHP安裝,因此在FastCGI的模式下運行。
3)打開 fcgiext.ini並添加到最後。
[Types] php=PHP
[PHP] ExePath=c:\PHP\php-cgi.exe InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
4)我添加cgi.force_redirect=0
到「;默認的超時 基於socket流(秒)的php.ini
5」一節),我確信我 SQL數據庫被設置爲Windows身份驗證模式和我在php.ini中也 切換mssql.secure_connection
上。
6)爲NT AUTHORITY \ NETWORK SERVICE的 SQL登錄,並給它適當的權限 到我的數據庫。
7)重新啓動了服務器
然後我加入了IUSR(IIS域帳戶)作爲登錄到SQL Server,並與db_readers和db_writer權限{} mydatabase_iis用戶和它實際工作。
步驟來重新創建:
- 在C:\ Program Files文件\ PHP \ php.ini中改變此線(即打開NT認證上): MSSQL。secure_connection =在
- 重新啓動IIS
- 在SQL Server Management Studio Express的
- 轉到安全|登錄(右鍵單擊)|未來添加新登錄...
- 點擊搜索到的登錄輸入框
- 類型IUSR並單擊檢查名稱(應強調兩個字 - 見截圖)
- 單擊確定
- 保留Windows身份驗證選擇,然後單擊確定
- 前往數據庫| {MyDatabase} |安全|用戶(右鍵單擊)|新用戶...
- 用戶名{} mydatabase_iis
- 登錄 - 點擊「...」,找到IUSR登錄
- 數據庫角色打勾擁有db_datareader和db_datawriter和變戲法我們在(或至少我是)
似乎CakePHP非常樂意將database.php文件用於數據庫名稱,並且我假設SQL Server只是忽略了那裏給出的用戶名和密碼,並使用Windows身份驗證。