我可以针对SQL Server数据库表对SVN用户进行身份验证吗?

时间:2012-12-12 11:54:56

标签: php sql-server apache svn

我正在尝试为Web应用程序设置一个简单的文档管理系统。

Web应用程序是用PHP编写的,并使用MSSQL DB。

在MSSQL DB中,我有一个表“Persons”,它标识了Persons,一个表“Logins”包含了Table Persons中行的登录名,另一个名为“SchoolClass”的表包含了School.The SchoolClasses。 BR />

使用另一个表“PersonsToSchoolClasses”,我能够确定哪个人在上课。

当我们现在看这个时,我们可以认识到,表“类”包含组,而“人员”是我们在SVN中需要的用户
这些课程及其关联经常会发生变化。

这么好。

现在我用svn进行实验。我认识到这正是我所需要的。

我尝试使用stackoverflow.com上发布的以下问题进行设置 How to set permissions in an svn repository?

这里描述的是我必须手动配置每个组和每个用户。

现在终于我的问题了:
是否可以从数据库表中配置组和用户?也许用SQL? 我不希望有一些存储所有用户和组的文件。密码也已包含在数据库中。我只需要一种方法,即SVN使用这些表并使用它。

1 个答案:

答案 0 :(得分:1)

  

是否可以从数据库表中配置组和用户

取决于。

如果您通过mod_dav_svn使用Subversion和Apache,那么它实际上并不是处理身份验证的Subversion,而是Apache。这意味着您可以使用Apache支持的任何方法来执行身份验证。您链接的问题完全在于使用svnserve程序,而不是Apache。

看起来您可以使用Apache的mod_authn_dbd来设置身份验证,而使用mod_dbd来设置数据库访问权限。

从文档中,mod_dbd可以使用FreeTDS库连接到MS SQL Server。但是,此功能附加了一个很大的胖security warning。简而言之,FreeTDS不支持带参数化查询的预准备语句。这意味着用户可以执行SQL注入攻击,除非您非常小心。

这有另一个缺点。除非你碰巧有幸已经拥有这些模块,否则你需要编译它们。目前尚不清楚你是在Linux还是Windows上,但无论如何它都将成为真正的熊。

还有一个ODBC驱动程序,但它在文档中描述为来自第三方,这意味着你几乎肯定要编译它。

老实说,我建议不要使用这种方法,除非你已经触手可及。只写出.htpasswd文件就有 no 的耻辱。请记住use Digest authentication