För det första skillnaden.
mod_authn_dbd tillhandahåller autentiseringsgränssnitt som mod_auth_digest och mod_auth_basic för att autentisera användare genom att slå upp användare i SQL-tabeller.
mod_auth_mysql är en Apache-modul som tillåter autentisering med hjälp av användar- och gruppdata lagrade i MySQL-databaser. Projektet verkar inte ha uppdaterats sedan 2005, så jag skulle välja mod_authn_dbd .
För att ställa in detta korrekt måste du först konfigurera mod_authn_dbd och mod_dbd korrekt i din apache-konfiguration, mod_dbd tar hand om din databasanslutning. När du har gjort detta (se till att din Apache körs med dessa moduler aktiva), då kan du fortsätta med att konfigurera dem.
Lägg till något liknande detta till din apache-konfiguration för att konfigurera databasanslutningen:
<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>
Lägg nu till din önskade autentiseringskonfiguration i apache-konfigurationen:
<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>
Jag har förenklat SELECT-satsen för bättre läsbarhet, du måste utöka denna för att få din konfiguration förfinad.
EDIT:
Efter att ha skrivit har jag hittat ett mycket bra exempel på webben, kanske läs det här också. Det går mycket djupare än mitt förenklade svar.