UML软件工程组织

通过mysql数据库来认证Subversion
作者:李树仁

在安装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() ,更不是明码。


版权所有:UML软件工程组织