使用 MySQL 进行 SVN 身份验证

2024-04-03

我正在尝试通过 MySQL 设置每个存储库 SVN 身份验证,但遇到一些问题。

首先,两者有什么区别mod_authn_dbd and mod_auth_mysql?

其次,我已经有一个 MySQL 数据库设置,其中包含用户、组和权限的表。是否可以使用这些 mod 中的任何一个链接到我当前的权限系统,其中需要用户名、密码和权限才能访问存储库(最好每个存储库具有读取权限和写入权限)

tbl_users:用户 ID、用户名、用户哈希

tbl_group:组 ID、组名称

tbl_permission:permission_id,permission_name

tbl_user_group:用户id,组id

tbl_group_permission:group_id,permission_id

tbl_user_permission:user_id,permission_id


首先是区别。

mod_authn_dbd http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html提供身份验证前端,例如 mod_auth_digest 和 mod_auth_basic,通过在 SQL 表中查找用户来对用户进行身份验证。

mod_auth_mysql https://sourceforge.net/projects/modauthmysql/是一个 Apache 模块,允许使用存储在 MySQL 数据库中的用户和组数据进行身份验证。该项目似乎自 2005 年以来就没有更新过,所以我会选择mod_authn_dbd http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html.

要正确设置,首先您需要在 apache 配置中正确配置 mod_authn_dbd 和 mod_dbd,mod_dbd 负责您的数据库连接。完成此操作后(确保您的 Apache 正在运行且这些模块处于活动状态),您就可以继续配置它们。

将类似的内容添加到您的 apache 配置中以配置数据库连接:

<IfModule mod_dbd.c>
  DBDriver mysql
  DBDParams "host=(your_db_server, p.e. 127.0.0.1) dbname=your_db_name user=your_db_user pass=your_db_pass"
  DBDMin 1
  DBDKeep 8
  DBDMax 20
  DBDExptime 200
</IfModule> 

现在将您所需的身份验证配置添加到 apache 配置中:

<Directory "/your/svn/repository/path/">
  Options FollowSymLinks Indexes MultiViews
  AuthType Basic
  AuthName "Allowed users Only"
  AuthBasicProvider dbd
  AuthDBDUserPWQuery "SELECT pwd FROM tbl_users, tbl_user_group WHERE tbl_users.user_id=%s AND tbl_user.user_id=tbl_user_group.user_id"
  Require valid-user
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

我简化了 SELECT 语句以获得更好的可读性,您必须扩展它才能完善您的配置。

EDIT:

输入后,我在网上找到了一个非常好的示例,也许可以阅读它here http://www.experts-exchange.com/Software/Server_Software/Web_Servers/Apache/A_3270-Enabling-and-Administering-Apache%27s-HTTPD-authn-dbd-MySQL-authentication-through-PHP-on-Suse.html, 也。它比我的简化答案要深入得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MySQL 进行 SVN 身份验证 的相关文章

  • SVN 存储库大小莫名其妙地从小差异增加到大文件

    我不明白为什么大文件的微小差异会导致我的颠覆存储库增长如此之多 我有一些测试使用的数据库内容的 zip 文件 我想将每个新版本的测试数据存储在我们的 Subversion 存储库中 我做了一些实验 检查了 data zip 的最后几个版本
  • 如何最好地处理不应该提交的 SVN 和本地更改?

    我已经从 SVN 存储库中查看了一些项目 为了构建这些项目 我必须调整一些配置 例如类路径和属性文件 以适应本地环境 现在我不想将这些更改提交到存储库 因此设置 svn ignore 可能会有所帮助 但是 如果我想从存储库获取更新而不提交这
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • TortoiseSVN 无法连接到 SlikSVN Subversion 服务器

    我已经在工作组中的一台计算机上创建了 SubVersion 服务器 从我的开发盒中 我可以毫无问题地访问存储库并签入 签出文件 我刚刚安装了 TortoiseSVN 无论我做什么 它都不会连接到服务器上的存储库 我收到臭名昭著的错误 无法建
  • 显示标准化数据

    跟进问题 添加 2 个不同表的总和 https stackoverflow com questions 39717541 adding sum from 2 different tables 我创建了3个表 members videos v
  • Galera 集群问题

    我想在我们的生产环境中使用Galera集群 但我有一些顾虑 每个表必须至少定义一个显式主键 每个表必须运行在InnoDB或XtraDB存储引擎下 分批处理您的大额交易 例如 不要让一个事务插入 100 000 行 而是将其分成更小的块 例如
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • 从另一台计算机访问 MYSQL

    我想开发一个java桌面应用程序 我想在其中设置服务器 这意味着我在这里使用mysql db 该数据库将仅存储在一台电脑上 其余所有用户都可以访问该数据库 所以 我听说了mysql远程连接 其中尝试了一些事情 这些措施如下 我的电脑已连接w
  • 如何在 MySQL 中求和时间?

    正如您在图片中看到的 我有一份停机报告 显示了所选工厂在选定日期的停机时间 现在我想添加所有的值 Time Duration 列并将其显示在附近的单独显示中 TOTAL TIME DURATION 例如 在图像中 所选日期为 2015 年
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • mysql转储到derby

    我正在使用 derby 在 eclipse 中进行开发 是否可以从 MySQL 转储表并以某种方式将其用于 derby 我知道 ddl 和 dml 对于两个 dbms 来说是不同的 但我正在寻找一种除了转储 导出之外的合适方法 我可以找到两
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • Lotus Notes/Domino 开发版本控制的最佳实践

    请分享您如何对 Lotus Notes Domino 开发进行版本控制 我想将所有脚本 视图 自定义表单 脚本库等放入我们的 SVN 存储库中 半自动方法也被接受 即 如果我找到一种方法来获取一个文件中表单的所有事件脚本 并能够将其作为整个
  • 无法在 Mac 上启动 MySQL

    使用 Brew 安装后 我无法运行 MySQL 我使用的是 OS X El Capitan 版本 10 11 3 和 MySQL Server 版本 5 7 11 当我启动服务器时 我收到 启动 MySQL 错误 服务器退出而不更新 PID
  • MySQL 错误 1172 - 结果包含多行

    在存储过程中运行查询时 我从 MySQL 收到此错误 错误代码 1172 结果包含多行 我理解错误 我正在做一个SELECT INTO var list 因此查询需要返回单行 当我使用LIMIT 1 or SELECT DISTINCT 错
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE

随机推荐

  • 特定的 PNG 压缩类型是否与 macOS Cocoa 应用程序不兼容?

    我们最近遇到了一些资产图像的问题 其中 Retina 2x版本正在非 Retina 设备上使用 存在资源的 Retina 和非 Retina 版本 我们已经将问题归结为压缩 因此我们现在可以避免它 但如果有人有其他见解 我很想听听他们的意见
  • 如何使用外部java库在命令行中编译和运行kotlin程序

    我是第一次尝试 kotlin 我能够在命令行上在 kotlin 中运行编译 hello world 程序 但无法编译我想要包含外部 java 库的程序 import com google gson Gson data class Perso
  • 使用 Rich Preview 元标记作为图像 html css

    当您通过文本 Facebook 消息或任何主流消息客户端发送链接时 您会注意到它会生成 丰富的预览 这基本上是您链接的网站弹出的图像 我了解如何设置此属性 例如
  • Gulp-sass 无法编译 scss 文件

    我正在使用 Gulp 将我的 sass 编译为 css 一个简单的任务编译style scss文件在 sass目录并将输出保存到项目的根目录中 style scss仅用于导入其他文件 sass目录 当我从命令行运行默认任务时 gulp 我收
  • 如何模糊除 2 个节点之外的所有内容。雪碧 (Swift)

    我想模糊我的游戏背景 self view scene paused true 但是按钮和暂停的标签 都是 SKSpriteNode 的 不应该是模糊的 它们都有不同的 Z index 值 按下按钮节点时场景暂停 再次按下按钮时场景恢复 我找
  • 通过 YouTube 数据 API 确定视频编解码器?

    是否可以通过 YouTube 数据 API 确定特定的 YouTube 视频是使用 H 264 还是 FLV 编码 如果是这样 怎么办 我可以开始文件下载并检查视频流的编码方式 当然 以编程方式 但我想使用 YouTube 数据 API 来
  • 正则表达式在字符串中查找数字

    我有一个字符串 可能包含也可能不包含 4 或 5 位数字 我正在寻找一个正则表达式 可以检测字符串是否确实有这样的数字 避免较长数字的万无一失的方法是 d d 4 5 d 我假设您不想在千位数字后面留有逗号 如果你这样做的话 d d 1 2
  • Symfony - 以生成的形式添加文本

    我想做一些非常简单的事情 但我不知道如何管理它 我有一个表格 form start form form widget form form end form 其中有几个文本字段 我想 插入 一些文本 例如 p my Text p 在两个文本字
  • lex :如何覆盖 YY_BUF_SIZE

    根据manual http westes github io flex manual The Default Memory Management html YY BUF SIZE is 16K我们需要重写它 但是 手册没有指定如何覆盖它 我
  • Tar:创建除一个之外的存档排除目录

    我有一些目录和一些文件 dir archive somedir1 dir archive somedir2 dir archive somedir3 dir archive mydir dir archive mydir excludedi
  • 在控制台中检测 Ctrl + S

    I m developing a console application in which I need to detect several hotkeys such as Ctrl N Ctrl O and Ctrl S Here s a
  • 如何在Excel中无法以图形方式显示的外部数据查询中添加参数?

    我经常使用 MS ExcelGet External Data创建简单的报告 对数据库运行查询并在 Excel 中很好地显示 Excel 的强大功能 例如过滤和数据透视表 以及用户熟悉的界面使其非常适合此目的 但是 Microsoft Qu
  • 如何反转 go 中的切片?

    如何反转任意切片 interface 在 Go 中 我宁愿不必写Less and Swap to use sort Reverse 有没有一种简单的内置方法可以做到这一点 Use 切片 反转 https pkg go dev slices
  • 错误:我们没有使用 Azure CLI 的有效访问权限

    我是 Azure CLI 的新用户 所以 我昨天开始使用它 一切正常 直到我在控制台上收到一条消息 要求我使用 Azure 登录命令再次登录 我按照消息所说的做了 打开我的浏览器并输入代码 浏览器加载页面 一切正常 但是 当我进入控制台窗口
  • 如何在 Maven 中创建校验和然后将其输出到文本文件?

    还在学习如何使用Maven 我想知道是否有办法做到checksum在生成的WAR file The Maven目标是package 我想要实现的是得到一个checksum价值 包装的WAR文件 与打包文件一起放入文本文件中 提前致谢 让它与
  • 当我移动轨迹栏时,如何防止 Windows 通用控件 6.0 中的控件(选项卡)闪烁和消失?

    滑动滑动条并释放鼠标按钮时 整个窗口都会闪烁 并且选项卡会消失 当我使用旧版本时 一切正常 当我使用新的 Microsoft Windows Common Controls ver 6 0 时 出现此问题 include
  • Flink 检查点到 Google Cloud Storage

    我正在尝试为 GCS 中的 flink 作业配置检查点 如果我在本地运行测试作业 没有 docker 和任何集群设置 一切正常 但如果我使用 docker compose 或集群设置运行它并在 flink 仪表板中使用作业部署 fat ja
  • Android 中的文本转语音完成后立即播放音频文件

    我正在尝试开发一个 Android 应用程序 一旦文本到语音完成 就必须播放音频文件 这个怎么做 如果我没有理解错的话 您想使用文本转语音来读取一些文本 同时将语音音频存储到手机中 然后再播放音频 你检查过吗录音测试 http develo
  • Mesos 任务 - 无法接受套接字:未来已丢弃

    我只是想将 mesos 版本从 1 0 3 升级到 1 3 1 Chronos 调度程序能够通过 mesos 调度作业 该作业运行良好并且能够查看 mesos 标准输出日志 但是 仍然在 mesos stderr 日志中看到以下内容 doc
  • 使用 MySQL 进行 SVN 身份验证

    我正在尝试通过 MySQL 设置每个存储库 SVN 身份验证 但遇到一些问题 首先 两者有什么区别mod authn dbd and mod auth mysql 其次 我已经有一个 MySQL 数据库设置 其中包含用户 组和权限的表 是否