我正在尝试为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使用这些表并使用它。
答案 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。