1

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

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

在 MSSQL DB 中,我有一个标识 Persons 的表“Persons”,一个包含表 Persons 中行的登录名的表“Logins”,另一个名为“SchoolClass”的表包含学校的 SchoolClasses。

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

当我们现在看到这个时,我们可以认识到,表“类”包含组,而“人员”包含我们在 SVN 中需要的用户。
这个类和它们的关联经常会改变。

现在我用svn做实验。我意识到这正是我所需要的。

我尝试使用 stackoverflow.com 上发布的以下问题进行设置: 如何在 svn 存储库中设置权限?

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

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

4

1 回答 1

1

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

这取决于。

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

看起来您可以使用 Apachemod_authn_dbd来设置身份验证并mod_dbd设置数据库访问权限。

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

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

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

老实说,我不建议您使用这种方法,除非您已经掌握了这些模块。仅仅写出一个文件并没有什么可耻的。.htpasswd只记得使用 Digest authentication

于 2012-12-13T07:53:02.957 回答