Apache 서버에서 mysql 인증과 함께 mod_dav_svn을 사용하도록 사이트를 구성하려고합니다 (mod-dav-svn, mod-auth-sql, apache, mysql).Mysql과 Apache를 사용하는 Subversion Access Control
나는이
auth_users
----------
uid username passwd
1 UserA pass
2 UserB pass
같은 세 개의 테이블이있는 데이터베이스를 사용하고 있습니다.
auth_groups
-----------
gid group
1 repo_rw
2 repo_ro
. 따라서
users_groups
uid gid
1 1
2 2
: - :
-사용자 A는 그룹의 구성원이 사용자 B가 그룹의 구성원이 가
나는 다음 내 httpd.conf 파일에 다음 사용
을 repo_ro입니다 repo_rw입니다<VirtualHost *:80>
DocumentRoot /var/www
ServerName repo.srv.domain.com
ServerPath /var/www
<Location /svn>
DAV svn
SVNPath /var/svn/repo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /dev/null
AuthBasicAuthoritative Off
AuthMySQL_Authoritative on
AuthMySQL_Empty_Password off
AuthMySQL_Encryption_Types Plaintext
AuthMySQL_Password_Table "auth_users u"
AuthMySQL_Username_Field "u.username"
AuthMySQL_Password_Field "u.passwd"
AuthMySQL_Group_Table "auth_groups g RIGHT JOIN users_groups ug ON (ug.gid=g.gid) RIGHT JOIN auth_users u ON (ug.uid=u.uid)"
AuthMySQL_Group_Field "g.group"
<Limit GET PROPFIND OPTIONS REPORT>
Require group repo_rw
</Limit>
</Location>
</VirtualHost>
이 구성에서는 사용자에게이 저장소의 유효한 사용자로 인증 된/var/svn/repo 저장소에 대한 액세스 권한을 부여 할 수 있습니다.
여러 개의 VirtualHost 항목을 추가하여 다양한 위치의 "repo"를 새로운 리포지토리 이름으로 바꾸고 개별 리포지토리에 대한 제어 된 rw 액세스를 제공 할 수 있습니다.
내 문제는 저장소에 대한 읽기 전용 액세스 및 익명 읽기 전용 액세스를 추가 할 수 없다는 것입니다.
가 나는 부분에
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require group repo_ro
</Limit>
를 추가하는 것이 가능해야한다 읽고이 그러나 내가이 일을 할 수 없었던, 저장소에 대한 읽기 전용 액세스를 제공해야합니다. mysql 로그를 끝내면 repo_rw 만 쿼리 된 것으로 표시됩니다.
누구든지 조언을 할 수 있다면 매우 감사하게 생각합니다!