2010-08-23 202 views
0

我有CakePHP使用標準SQL Server身份驗證連接到SQL Server數據庫。如果我想通過Windows身份驗證連接,而不是有人嘗試過?CakePHP SQL Server Windows身份驗證

首先,我認爲它需要使用SQL Server drivers,即不是標準的MSSQL PHP驅動程序,以便PHP本身可以使用Windows身份驗證。然後,它將CakePHP中的所有位置替換爲假設使用/app/core/database.php配置文件的問題。

有沒有人嘗試使用CakePHP的SQL Server驅動程序或更好的嘗試Windows身份驗證?或者乾脆也許它不值得這樣麻煩。

回答

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 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用戶和它實際工作。

步驟來重新創建:

  1. 在C:\ Program Files文件\ PHP \ php.ini中改變此線(即打開NT認證上): MSSQL。secure_connection =在
  2. 重新啓動IIS
  3. 在SQL Server Management Studio Express的
  4. 轉到安全|登錄(右鍵單擊)|未來添加新登錄...
  5. 點擊搜索到的登錄輸入框
  6. 類型IUSR並單擊檢查名稱(應強調兩個字 - 見截圖)
  7. 單擊確定
  8. 保留Windows身份驗證選擇,然後單擊確定
  9. 前往數據庫| {MyDatabase} |安全|用戶(右鍵單擊)|新用戶...
  10. 用戶名{} mydatabase_iis
  11. 登錄 - 點擊「...」,找到IUSR登錄
  12. 數據庫角色打勾擁有db_datareader和db_datawriter和變戲法我們在(或至少我是)

似乎CakePHP非常樂意將database.php文件用於數據庫名稱,並且我假設SQL Server只是忽略了那裏給出的用戶名和密碼,並使用Windows身份驗證。

相關問題