千家信息网

Apache基于MySQL的身份验证(转)

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,Apache基于MySQL的身份验证(转)[@more@]本文介绍在Apache中实现用户身份验证的方法,讨论如何在MySQL数据库中保存验证信息,然后通过mod_auth_mysql模块实现身份验证
千家信息网最后更新 2024年11月22日Apache基于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 BasicAuthName "Members Only"require group adminAuth_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_passwordAuth_MySQL_DB authenticationAuth_Mysql_Password_Table passwordsAuthType BasicAuthName "Members Only"require valid-user   上例假定保存用户名字的字段是username,密码经过加密再保存到password字段。三、其他   只要按照上面介绍的方法设置好了.htaccess文件,访问该目录下面的页面时就会出现密码输入窗口。对于用户来说,不同的密码保护实现方法并没有什么差别。    你可以使用任何自己熟悉的数据库管理工具管理用户信息,目前似乎还没有象dbmmanage一样从命令行管理数据库里用户信息的简单工具。    但我们可以通过Perl和DBI操作数据库。下一篇文章要讨论的就是用Perl管理密码文件的诸多优点。用Perl管理密码的方法实在很多,所以让它单独成文应该是比较合适的。    结束语:使用mod_auth_mysql,我们可以把用户名字、密码和所属组信息保存到MySQL数据库。MySQL是一种小型、快速、免费的数据库服务器,大多数流行的操作系统上都有MySQL的相应版本
数据 数据库 用户 密码 名字 信息 字段 验证 身份 指令 文件 方法 模块 配置 目录 管理 所属 服务器 服务 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 特岗服务器满有哪些优待政策 网络安全防火墙基本介绍 学校网络安全防范与宣传 如何清除mac上的数据库 吐鲁番特价服务器 BING输入法软件开发 5e服务器更改名称怎么改 门禁如何设置数据库 魔兽怀旧服服务器维护多长时间 小月和阿阳玩服务器小游戏 网络技术考试试卷答案 基于模型驱动的应用软件开发 未连接到官方任意服务器 vpn服务器win 重庆华为服务器续保费用 用友u8初始化数据库口令 大学生怎样学习网络安全知识 关系型数据库中的关系指什么 网络技术基础配置 数据库故障恢复的基本单元是 数据库系统特征包括 特岗服务器满有哪些优待政策 咸阳网络技术参考价格 印度数据库最新消息 网络安全案例 分析大赛 海典数据库sa密码 金融软件开发专业大学排名 陕西惠普服务器维修价格 如何进国服服务器csgo 精灵宝可梦服务器手机版下载教程
0