2

MySQLを介してリポジトリごとのSVN認証を設定しようとしていますが、いくつか問題があります。

まず、 mod_authn_dbdmod_auth_mysqlの違いは何ですか?

次に、ユーザー、グループ、およびアクセス許可用のテーブルを備えたMySQLデータベースのセットアップがすでにあります。これらのmodのいずれかを使用して、リポジトリにアクセスするためにユーザー名、パスワード、およびアクセス許可が必要な現在のアクセス許可システムにリンクすることは可能ですか(リポジトリごとの読み取りアクセス許可と書き込みアクセス許可が望ましい)

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

4

1 に答える 1

3

まず違い。

mod_authn_dbdは、mod_auth_digestやmod_auth_basicなどの認証フロントエンドを提供し、SQLテーブルでユーザーを検索してユーザーを認証します。

mod_auth_mysqlは、MySQLデータベースに保存されているユーザーおよびグループデータを使用した認証を可能にするApacheモジュールです。プロジェクトは2005年以降更新されていないようですので、mod_authn_dbdを選択します。

これを適切に設定するには、最初に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ステートメントを簡略化しました。構成を改良するには、これを拡張する必要があります。

編集:

入力した後、私はWebで非常に良い例を見つけました、多分ここでもそれを読んでください。それは私の単純化された答えよりもずっと深くなります。

于 2012-08-28T17:41:59.850 に答える