中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Apache基于MySQL的身份驗證(轉)

發布時間:2020-08-09 18:36:04 來源:ITPUB博客 閱讀:220 作者:post0 欄目:MySQL數據庫
Apache基于MySQL的身份驗證(轉)[@more@]

本文介紹在Apache中實現用戶身份驗證的方法,討論如何在MySQL數據庫中保存驗證信息,然后通過mod_auth_mysql模塊實現身份驗證。

一、概述

   前文討論了在身份驗證中使用數據庫的方法,具體介紹了mod_auth_db模塊和DB文件的使用。這里要介紹的是如何使用非常流行的MySQL數據庫保存身份驗證信息,再通過mod_auth_mysql訪問MySQL數據庫實現身份驗證。

  1.1 關于MySQL

   MySQL是一種優秀的數據庫服務器,具有體積小速度快的特點。MySQL以GPL方式發行,它的主頁在http: //www.mysql.com/。MySQL缺少某些昂貴的大型數據庫所提供的功能,比如存儲過程、觸發子等等,但它具備了大多數中小型工程所需要的基本功能。另外,它還有一些非常實用的特色,比如可用于SQL命令的正則表達式等。

   由于MySQL是免費的,而且其表現又如此不俗,在UNIX家族的操作系統上它是很受歡迎的數據庫——特別是對于那些預算有限的用戶來說。另外請注意,MySQL也有在Windows上運行的版本。

  1.2 關于mod_auth_mysql模塊

   我們可以使用mod_auth_mysql模塊把用戶名字和密碼保存到MySQL數據庫,然后直接使用它們進行身份驗證。

   使用這種方法除了能夠提高數據訪問速度之外,還有其他許多好處。例如,假設用戶信息原來保存在數據庫中,使用文本文件進行密碼驗證時必須把用戶名字和密碼再復制一份,這樣你就得在兩個地方維護同樣的數據,如果這兩份數據不是同步更新,用戶就有可能不能登錄。

   反過來,如果使用的是mod_auth_mysql,我們就可以直接用數據庫中的用戶信息進行身份驗證,此時用戶信息只需一份就足夠了,用戶名字和密碼可以用SQL命令更新,不會出現使用文本文件時可能遇到的問題。另外,要修改用戶所屬的組也很方便。

二、安裝和配置

   要獲得mod_auth_mysql模塊或者查看它的詳細資料,請訪問http://bourbon.netvision.net.il/mod_auth_mysql/。

   mod_auth_mysql可以編譯成DSO(Dynamic Shared Object,動態共享對象),然后只需通過配置指令即可將它安裝到服務器上。關于DSO的更多說明,請參見Apache指南:新手安裝必讀。

   配置mod_auth_mysql模塊時,我們必須告訴它要用哪一個數據庫來進行身份驗證,以及哪一個表、什么字段包含了驗證用的信息。下面是配置mod_auth_mysql時必須了解的配置指令:

Auth_MySQL_Info [host] [user] [password]

   這個指令聲明數據庫在哪一個服務器上運行以及訪問這個數據庫應該使用的用戶名字和密碼。只有當數據庫不在localhost(即本地機器)上運行或者訪問數據庫的不是httpd用戶時,我們才需要使用這個指令。

   如果所有的身份驗證操作都使用同一個數據庫,那么你可以使用下面這個指令:

Auth_MySQL_General_DB [數據庫名字]

   否則,如果對不同目錄的身份驗證操作使用不同的數據庫,你可以忽略這個指令,然后在各個的目錄中指定所用數據庫。

   下面介紹的幾個指令既可用于httpd.conf配置文件,也可用于各個目錄的.htaccess文件。請參見Using .htaccess Files with Apache了解更多信息。

   注意在為目錄設置密碼保護時可以應用通常使用的指令,如下所示:

AuthType Basic

AuthName "Members Only"

require group admin

Auth_MySQL_DB [數據庫名字]:聲明使用哪一個數據庫中的信息進行身份驗證。

Auth_MySQL_Password_Table [密碼表的名字]:聲明數據庫中哪一個表包含密碼信息。除非特別聲明,否則默認包含用戶名字的字段是“username”,包含密碼的字段是“password”。但我們可以按照下面介紹的方法指定另外的字段。

Auth_MySQL_Group_Table [保存組信息的表]:一般地,我們可以把用戶所屬組的信息(groups字段)和用戶名字、密碼保存到同一個表中。但是如果有必要把它保存到獨立的表,這里可以指定該表的名字。

Auth_MySQL_Username_Field [用戶名字字段]:如果保存用戶名字信息的字段不是“username”,可以用這個指令指定實際使用的字段名字。

Auth_MySQL_Password_Field [密碼字段]:如果保存密碼的字段不是“password”,可以用這個指令指定實際使用的字段名字。

Auth_MySQL_Group_Field [用戶所屬組的字段]:如果保存組信息的字段不是“groups”,可以用這個指令指定實際使用的字段名字。

Auth_MySQL_Encrypted_Passwords on/off:告訴mod_auth_mysql模塊保存在數據庫中的密碼是否經過加密。默認on,即假定數據庫中保存的密碼是經過加密的。

   還有其他一些指令,不過經常要用到的就是上面這些。下面是.htaccess文件的一個例子:

Auth_MySQL_Info localhost db_user db_password

Auth_MySQL_DB authentication

Auth_Mysql_Password_Table passwords

AuthType Basic

AuthName "Members Only"

require valid-user

   上例假定保存用戶名字的字段是username,密碼經過加密再保存到password字段。

三、其他

   只要按照上面介紹的方法設置好了.htaccess文件,訪問該目錄下面的頁面時就會出現密碼輸入窗口。對于用戶來說,不同的密碼保護實現方法并沒有什么差別。

   你可以使用任何自己熟悉的數據庫管理工具管理用戶信息,目前似乎還沒有象dbmmanage一樣從命令行管理數據庫里用戶信息的簡單工具。

   但我們可以通過Perl和DBI操作數據庫。下一篇文章要討論的就是用Perl管理密碼文件的諸多優點。用Perl管理密碼的方法實在很多,所以讓它單獨成文應該是比較合適的。

   結束語:使用mod_auth_mysql,我們可以把用戶名字、密碼和所屬組信息保存到MySQL數據庫。MySQL是一種小型、快速、免費的數據庫服務器,大多數流行的操作系統上都有MySQL的相應版本
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家口市| 南岸区| 朝阳县| 淮阳县| 西林县| 南阳市| 略阳县| 郓城县| 顺平县| 太康县| 定西市| 偏关县| 沁阳市| 湖南省| 巨鹿县| 双鸭山市| 扶绥县| 永宁县| 邵阳市| 金川县| 宁陕县| 牟定县| 嘉义市| 平凉市| 疏附县| 武冈市| 南通市| 米泉市| 许昌县| 锦州市| 吉木萨尔县| 麻江县| 崇阳县| 白沙| 巨野县| 玛纳斯县| 三台县| 太湖县| 丽江市| 长子县| 乳山市|