> Apache2.2 中文手册 > mod_authn_dbd

Apache模块 mod_authn_dbd

说明 使用SQL数据库为认证提供支持
状态 扩展(E)
模块名 authn_dbd_module
源文件 mod_authn_dbd.c
兼容性 仅在 Apache 2.1 及以后的版本中可用

概述

该模块为认证前端(mod_auth_digestmod_auth_basic)使用SQL数据库进行用户认证提供支持。mod_authn_file模块也提供类似的功能。

本模块依赖于mod_dbd指定的后端数据库驱动程序和连接参数以及管理数据库连接。

使用mod_auth_basicmod_auth_digest的时候,可以通过在AuthBasicProviderAuthDigestProvider指令中使用dbd值调用该模块。

mod_authn_dbd

配置示例

下面这个简单的示例展示了如何在基于DBD框架的认证环境中使用该模块。

#数据库管理

#使用PostgreSQL驱动程序
DBDriver pgsql

#连接字符串:数据库名 用户名 密码
DBDParams "dbname=htpasswd user=apache password=xxxxxx"

#管理连接池的参数
DBDMin  1
DBDKeep 2
DBDMax  10
DBDExptime 60

#认证部分
<Directory /usr/www/myhost/private>

    #基于authn_dbd的认证配置
    AuthType Basic
    AuthName "My Server"
    AuthBasicProvider dbd

    #授权配置
    Require valid-user

    #验证用户的SQL查询语句
    #(注意:DBD驱动程序同时允许stdio风格的 %s 和特定于数据库的语法)
    AuthDBDUserPWQuery "select password from authn where username = %s"
</Directory>
mod_authn_dbd

说明 检索用户密码的SQL查询语句 语法 AuthDBDUserPWQuery query 作用域 directory 覆盖项 AuthConfig 状态 扩展(E) 模块 mod_authn_dbd

AuthDBDUserPWQuery指定了从数据库中检索用户密码的SQL查询语句。该查询语句必须接受一个单独的字符串(通常是SQL里的varchar类型)参数(username),同时返回一个单独的字符串值(hash过的密码)。

AuthDBDUserPWQuery "SELECT password FROM authn WHERE username = %s"

mod_authn_dbd

说明 为用户名与认证区域的组合检索密码的SQL查询语句 语法 AuthDBDUserRealmQuery query 作用域 directory 覆盖项 AuthConfig 状态 扩展(E) 模块 mod_authn_dbd

AuthDBDUserRealmPWQuery指定了从数据库中检索一个用户名与认证区域的组合的密码的SQL查询语句。该查询语句必须接受两个单独的字符串(通常是SQL里的varchar类型)参数(username, realm),同时返回一个单独的字符串值(hash过的密码)。

AuthDBDUserRealmPWQuery "SELECT password FROM authn WHERE username = %s AND realm = %s"

上一篇:
下一篇: