技术开发 频道

通过mysql数据库来认证Subversion

【IT168 技术文章】

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

0
相关文章