Autenticación SVN usando MySQL

Estoy intentando configurar por SVN de repository mediante MySQL, pero tengo algunos problemas.

En primer lugar, ¿cuál es la diferencia entre mod_authn_dbd y mod_auth_mysql ?

En segundo lugar, ya tengo una configuration de database MySQL con una tabla para usuarios, grupos y permissions. ¿Es posible utilizar cualquiera de estas modificaciones para vincular a mi sistema de permissions actual donde se requiere un nombre de usuario, contraseña y permiso para acceder al repository (Preferible con un permiso de lectura y permiso de escritura por repository)

tbl_users: user_id, user_name, user_hash

tbl_group: group_id, group_name

tbl_permission: permission_id, permission_name

tbl_user_group: user_id, group_id

tbl_group_permission: group_id, permission_id

tbl_user_permission: user_id, permission_id

Primero la diferencia.

mod_authn_dbd proporciona front-ends de authentication como mod_auth_digest y mod_auth_basic para autenticar a los usuarios buscando usuarios en tablas SQL.

mod_auth_mysql es un module de Apache que permite la authentication utilizando datos de usuarios y grupos almacenados en bases de datos MySQL. El proyecto parece no haberse actualizado desde 2005, así que iría por mod_authn_dbd .

Para configurarlo correctamente, primero debe configurar correctamente mod_authn_dbd y mod_dbd en su configuration de apache, mod_dbd se encarga de su connection a la database. Una vez que haya hecho esto (asegúrese de que su Apache se esté ejecutando con esos modules activos), entonces puede continuar configurándolos.

Agregue algo como esto a su configuration de Apache para configurar la connection de la database:

<IfModule mod_dbd.c> DBDriver mysql DBDParams "host=(your_db_server, pe 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> 

Ahora agregue su configuration de authentication deseada en la configuration de 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> 

Simplifiqué la statement SELECT para una mejor legibilidad, tienes que expandir esto para que tu configuration sea más precisa.

EDITAR:

Después de tipear, encontré un muy buen ejemplo en la web, quizás también lo lea aquí . Va mucho más profundo que mi respuesta simplificada.