您的位置:首页 > 运维架构 > Apache

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

2010-05-12 10:07 615 查看
网上多数都是介绍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 搭建安全的版本控制环境
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐