MySQL的ODBC接口實(shí)現(xiàn)是通過(guò)安裝MyODBC驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)程序是跨平臺(tái)的。如果在Linux等unix體系操作系統(tǒng)下使用,需要先安裝iodbc這些第三方ODBC標(biāo)準(zhǔn)支援平臺(tái)。
簡(jiǎn)單的ASP示例代碼:
- <%
- dim sql,mysql
- set sql = server.createobject("adodb.connection")
- mysql="driver={mysql odbc 3.51 driver};database=庫(kù);server=主機(jī);uid=用戶;password
- =密碼;" 'option = 設(shè)置
- sql.open mysql
- %>
上邊這段代碼是采用MyODBC開(kāi)發(fā)版3.51連接的示例,使用開(kāi)發(fā)版是因?yàn)橐恍┬碌奶匦院头€(wěn)定性2.x正式版所不具備的。前幾天看了篇微軟安全專家所撰寫(xiě)的如何編寫(xiě)安全程序的教程。上邊提到如果按照上邊示例的方法一旦ASP文件的代碼被駭客看到,那么數(shù)據(jù)庫(kù)可能不保,然后引發(fā)一連串的問(wèn)題,甚至被奪得管理權(quán)限。文章中順便提到了解決方法,是通過(guò)編寫(xiě)com組件,然后由ASP調(diào)用組件的方法連接數(shù)據(jù)庫(kù)。這么做的好處是提高了安全性,但是問(wèn)題是有能力這么做的人畢竟是少數(shù)。那么我的折衷方案是定義數(shù)據(jù)源。將庫(kù)、用戶、密碼以及設(shè)置這些連接信息統(tǒng)統(tǒng)在數(shù)據(jù)源中定義,從很大程度簡(jiǎn)單化了實(shí)現(xiàn)的難度,而且也起到增強(qiáng)安全性的作用。當(dāng)然,為了保證數(shù)據(jù)源可以在實(shí)際運(yùn)作環(huán)境中被訪問(wèn)到,一定要定義為“系統(tǒng)數(shù)據(jù)源”,開(kāi)發(fā)時(shí)定義為“用戶數(shù)據(jù)源”或者“系統(tǒng)數(shù)據(jù)源”我倒覺(jué)得無(wú)傷大雅。
使用數(shù)據(jù)源的ASP示例代碼
- <%
- dimsql
- setsql=server.createobject("adodb.connection")
- sql.open"dns=MySQL數(shù)據(jù)源名稱"
- %>