1

このアプリケーションを PHP で開発しています。アプリケーションは、従業員機能も含む管理領域で構成されます。アプリケーションの他の部分は、顧客向け Web サイトです。

管理エリアには独自のデータベースがあります。顧客向け Web サイトには、独自のデータベースもあります。

管理データベースには、ユーザーのテーブルがあり、RBAC を実装して、ユーザーが役割や権限などを持つことができるようにする予定です。

顧客向け Web サイトでは、顧客が登録することもできます。これは、顧客 Web サイト データベースのユーザー テーブルに保存されます。

私が必要としているのは、従業員が顧客の Web サイトにログオンできるようにすることです。また、顧客 Web サイトのどの部分を変更できるか、および顧客 Web サイト データベースのどの行を変更できるかを制御する権限も必要です。

これを実装する最良の方法は何ですか?

乾杯 :)

4

2 に答える 2

1

可能であれば、同じ概念を扱うテーブルを常にマージすることをお勧めします (ユーザーはこちら)。

ここでの問題は、データの保存方法 (1 つまたは 2 つのテーブル、1 つまたは 2 つのデータベース) に関係なく、データ アクセス セキュリティです。

MySQL (および他の多くの一般的な DBMS) を使用すると、次のことができます。

  • 一部のテーブルにのみアクセスできる MySQL アカウントを作成し、一部の操作 (SELECT のみなど) のみを実行し、一部の列のみにアクセスするなど。

  • MySQL アカウントからテーブルを非表示にし、このテーブルのビューへのアクセスのみを許可します (列/テーブル結果のフィルタリング)。

データ構造がどうであれ、いくつかの従業員データ (ログイン、パスワード、アクセス許可など) をチェックする必要があり、そのための十分な権限を持つ MySQL アカウントをコードで使用する必要があります。

したがって、ユーザーを 1 つのテーブルにまとめ、テーブルを追加してロール (従業員、顧客など) を記述し、賢明にコーディングすることをお勧めします。

データベースの設計データ アクセスのセキュリティの問題を別々に扱うことに注意してください。データ アクセス セキュリティによって、データベース設計の非論理的な選択に導かれることがあってはなりません。

于 2011-03-12T14:47:24.230 に答える
0

あなたはこのようなことをすることができます:

$sql = "SELECT * FROM employeedb.employee_user_table WHERE employee_id = '???'";

スレッドスターターからのコメント問題として。2つのユーザーテーブルの場合、次のようなソリューションを使用できます。

  • 新しいテーブルを作成します。例:global_user_table with field:

    • ユーザーID
    • パス
    • table_source(実際のテーブルソース)
    • is_special_user(またはそのようなもの)
    • additional_field1
    • additional_field2
    • などなどなど
  • ユーザーがログインするたびに、このテーブルをチェックして、後で使用できるようにtable_sourceをセッションに保存してもらいます。

于 2011-03-12T11:52:11.550 に答える