在安装apache时要选择apache的模块mysql_auth_module,否则要自己安装该模块,该模块下载网址是:
http://prdownloads.sourceforge.n ... 0.0.tar.gz?download
在安装linux时可以选择安装apache和模块mysql_auth_module。
安装完模块后在/etc/httpd/conf.d目录下有auth_mysql.conf配置文件,根据配置内容进行数据库创建、表和user的创建。根据需要来创建用户表和组表。例如:
# CREATE DATABASE http_auth;
# USE auth;
#创建表users和groups
# CREATE TABLE users (
# user_name CHAR(30) NOT NULL,
# user_passwd CHAR(20) NOT NULL,
# PRIMARY KEY (user_name)
# );
# CREATE TABLE groups (
# user_name CHAR(30) NOT NULL,
# user_group CHAR(20) NOT NULL,
# PRIMARY KEY (user_name, user_group)
# );
#授权给用户authuser来查询,任何一台计算机都可以查询数据库
# GRANT SELECT
# ON auth.users
# TO authuser@localhost
# IDENTIFIED BY 'PaSsW0Rd';
# GRANT SELECT
# ON auth.users
# TO authuser@'%'
# IDENTIFIED BY 'PaSsW0Rd'; |
# GRANT SELECT
# ON auth.groups
# TO authuser@localhost
# IDENTIFIED BY 'PaSsW0Rd';
# GRANT SELECT
# ON auth.groups
# TO authuser@'%'
# IDENTIFIED BY 'PaSsW0Rd'; |
#插入用户和组数据
# INSERT INTO users VALUES ('test user', ENCRYPT('testpass'));
# INSERT INTO groups VALUES ('testuser', 'user');
# INSERT INTO users VALUES ('testadmin', ENCRYPT('testpass'));
# INSERT INTO groups VALUES ('testadmin', 'admin');
# INSERT INTO groups VALUES ('testadmin', 'user'); |
这样在数据库建成后就可以对相应的web应用进行设置权限。例如:
#<Directory /var/www>
# AuthName "MySQL group authenticated zone"
# AuthType Basic
#
# AuthMySQLUser authuser
# AuthMySQLPassword PaSsW0Rd
# AuthMySQLDB auth
# AuthMySQLUserTable users
# AuthMySQLNameField user_name
# AuthMySQLPasswordField user_passwd
# AuthMySQLGroupTable groups
# AuthMySQLGroupField user_group
#
# require group user
#</Directory> |
如果是对subversion资源库进行认证的话,需要把配置信息放入到subvesion.conf配置文件中去。
最后需要特别说明的是:users 表中的 user_passwd 字段是采用 mysql 的 encrypt() 加密的,而不是
password() ,更不是明码。 |