SVN的MySQL数据库用户验证模式(一)

到目前为止我们的用户名密码文件还是以文本文件形式存放在文件系统中的,出于安全性的需要的考虑,文本文件的管理方式都不能满足需求了。通过 Apache 的 module_auth_mysql 模块,我们可以用 MySQL 来保存用户信息。 1. 下载module_auth_mysql模块 主页:http://modauthmysql.sourceforge.net/ 或者:http://www.rpmcenter.org/win32/,这里包含有编译好的module_auth_mysql.so 2. 安装模块 安装方法同之前的Apache 的模块一样,复制到modules 目录并在httpd.conf 文件中添加如下语句: LoadModule mysql_auth_module modules/mod_auth_mysql.so 3. 创建MySql数据库(假设已经安装完MySql,并且能正常运行) 在mysql中创建一个svn数据库,新建一个user表 CREATE TABLE `user_info` ( `user_name` char(30) NOT NULL COMMENT '用户名', `user_passwd` char(20) NOT NULL COMMENT '密码', PRIMARY KEY (`user_name`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312; 插入一条记录 insert into user_info(user_name,user_passwd) values ('admin','admin'); 4. 修改版本库的配置文件的 内容: DAV svn SVNPath "D:/SourceCode/project1" AuthzSVNAccessFile "D:/SourceCode/conf/project1_access.txt" Require valid-user AuthType Basic AuthName "MySQL repository " AuthMySQLHost localhost AuthMySQLDB svn AuthMySQLUser root AuthMySQLPassword sa AuthMySQLUserTable user_info AuthMySQLEnable On AuthMySQLNameField user_name AuthMySQLPasswordField user_passwd AuthMySQLPwEncryption none 解释一下参数含义: AuthMySQLHost:mysql数据库的主机名称(可以是localhost,host名称或者ip地址) 备选参数AuthMySQLPort:Mysql数据库的端口号 AuthMySQLDB:数据库名称 AuthMySQLUser:数据库用户名 AuthMySQLPassword:数据库密码 AuthMySQLUserTable:存放用户名和密码的数据库表 AuthMySQLEnable:是否启用mysql数据库认证(On Off) AuthMySQLNameField:表中存放用户名的字段名 AuthMySQLPasswordField:表中存放密码的字段名 AuthMySQLPwEncryption:密码的加密方式(none | crypt | scrambled | md5 | aes | sha1) none 不加密 ceypt Unix的加密方式 scrambled mysql的加密方式 md5 md5加密方式 aes aes加密方式 sha1 sha1加密方式 5. 在数据库中添加用户组: 在user_info表中增加字段user_group char(20) 更新admin的用户的user_group为"administrator" 新增另外一条记录 insert into user_info(user_name,user_passwd,user_group) values ('zwang','zwang','develper'); 修改版本库的配置文件的 内容: DAV svn SVNPath "D:/SourceCode/project1" #AuthzSVNAccessFile "D:/SourceCode/conf/project1_access.txt" AuthType Basic AuthName "MySQL repository " AuthMySQLHost localhost AuthMySQLDB svn AuthMySQLUser root AuthMySQLPassword sa AuthMySQLUserTable user_info AuthMySQLEnable On AuthMySQLNameField user_name AuthMySQLPasswordField user_passwd AuthMySQLGroupField user_group AuthMySQLPwEncryption none Require group administrator test 新增参数: AuthMySQLGroupField:表中存放用户组的字段名 把Require valid-user修改为Require group administrator test,即允许administrator和test组访问。 这样的表结构只能允许一个用户一个组的设计,如果需要一个用户属于多个组,需要把user_group字段拆分出来,设计另外一张用户组表,这里就不详细说了,具体可以参考该模块主页上的配置例子
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值