Apache使用SQL Server Express 2005保存登录认证帐户信息

网上多数都是介绍SVN+Apache+MySQL搭建版本库平台,由于需要开发了基于.NET的扩展尝试使用SQL Server Express 2005进行认证。

其实配置方法类似使用MYSQL,但一些Apache参数需要调整。步骤:

1.当然是安装了SQL Server Express 2005,并有认证数据库,假设名称为Test。

1)创建表Apache_Users,增加字段[user_name] [nvarchar](50),[password] [nvarchar](50)

2)插入数据test,123456

 

2.添加数据源,打开[控制面板][管理工具][数据源 (ODBC)],系统DSN选项卡[添加]。

1)创建数据源中选SQL Server[完成]。

2)创建到SQL Server的新数据源,[名称]自己设为TestDB(可自己设,后面用到)、[描述]随便、[服务器]为Test数据库所在数据库(一般为XXXX/SQLEXPRESS)[下一步]。

3)本地用Windows NT验证,远程最好用SQL Server验证并最好填上[登录ID]和[密码],[下一步]。

4)勾上[更改默认的数据库为],下拉选择Test,如果没有说明2)中[服务器]未设到对应Test数据库的服务器,[下一步]。

5)按默认选项,点[完成]。

系统DSN选项卡中[系统数据源]出现TestDB

 

3.配置Apache,修改httpd.conf

1)找到#LoadModule dbd_module modules/mod_dbd.so去掉“#”

改为如下:具体设置参看Apache文档Apache Module mod_dbd

LoadModule dbd_module modules/mod_dbd.so
DBDriver odbc
DBDParams "datasource=TestDB user=数据库用户名 password=数据库密码"
DBDKeep     10
DBDMax      10
DBDMin      10

2)找到#LoadModule authn_dbd_module modules/mod_authn_dbd.so去掉“#”,

SVN访问修改成如下,主要红色认证部分要对应Apache_Users的字段,详细参考Apache文档Apache模块 mod_authn_dbd

<Location /svn>
DAV svn
SVNParentPath 自行设定的SVN版本库位置
AuthType Basic
AuthName "自行设定认证框显示名称"
AuthBasicProvider dbd
AuthDBDUserPWQuery "SELECT password FROM Apache_Users WHERE user_name = %s"
AuthzSVNAccessFile 自行设定访问控制文件位置
Require valid-user
</Location>

这时svn登录可用帐号test,密码123456登录。

 

注意:

暂时密码只能为明文,试过用.net的MD5加密

“AuthDBDUserPWQuery "SELECT SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5',password)),3,32) FROM Apache_Users WHERE user_name = %s" ”

但Apache出错关闭。

 

参考资料:

1.Apche认证、授权、访问控制

2.How-To Authentication through ODBC :: MySQL etc.

3.用 Apache 和 Subversion 搭建安全的版本控制环境

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值