Oh Mann!
In dem vorgegebenen mod_auth_mysql.conf sind alle zu sperrenden Verzeichnisse relativ angegeben. Das erkennt man daran, dass sie nicht mit einem <directory> getagt sind, sondern mit <location>. Wenn man das macht, gilt der Zugriffsschutz für alle Vhosts, die ein solches Unterverzeichnis haben.
Also:
Nur das Verzeichnis /admin für domain-a.de sperren geht so:
<Directory "v:/virtualhosts/domain-a.de/admin>
AuthName "ADMIN Section"
AuthType Basic
require group admin
AuthMySQLHost localhost
AuthMySQLDB webauth
AuthMySQLUser auth_user
AuthMySQLPassword xxx
AuthMySQLUserTable users
AuthMySQLNameField username
AuthMySQLPasswordField password
AuthMySQLGroupTable users
AuthMySQLGroupField groupname
AuthMySQLCryptedPasswords Off
</Directory>
Alle Unterverzeichnisse für alle Vhosts mit /admin sperren geht so:
<Location /admin>
AuthName "ADMIN Section"
AuthType Basic
require user root
AuthMySQLHost localhost
AuthMySQLDB webauth
AuthMySQLUser auth_user
AuthMySQLPassword xxx
AuthMySQLUserTable users
AuthMySQLNameField username
AuthMySQLPasswordField password
AuthMySQLGroupTable users
AuthMySQLGroupField groupname
AuthMySQLCryptedPasswords Off
</Location>
Ich kann mir vorstellen, dass man diese Art Sperre für Verzeichnisse braucht, die mit einem Alias für alle zugänglich gemacht wurden.
Wie z.B im Apache von XAMPP vorkonfiguriert:
Alias /phpmyadmin "V:/Webserver/xampp/phpmyadmin/"
Darauf können dann alle zugreifen, wenn man im Vhost auf /phpmyadmin geht. Man könnte dann eine Gruppe für mysqladmins anlegen und nur dieser Gruppe die <location /phpmyadmin > freigeben. Je nach Username hat dann jeder Zugriff mit phpmyadmin auf seine eigene Datenbank.
Hoffe, das hilft einigen weiter.
Dominik