2

これは、Webアプリケーション開発では非常に一般的なことです。私はそれを何度もやりました。

しかし、私はこのためのスキーマを設計する現在のプロジェクトで立ち往生しています。

私のアプリケーションには、最初に3種類のユーザー、たとえばSuperAdmin、Admin、および通常のユーザーが含まれます。

これらのユーザータイプをROLE_SUPERADMIN、ROLE_ADMIN、ROLE_USERなどのロールとして使用する予定です。

システムには多くの役割があります。実際、SuperAdminとAdminsはロールを作成し、それらのロールをユーザーに割り当てます。

問題は、

スーパー管理者には、許可p1、p2、およびp3があります。スーパー管理者は、他のスーパー管理者を作成できます。スーパー管理者は管理者を作成できます。スーパー管理者は、システムにユーザーを追加しません。

管理者は、権限p5、p6、およびp7を持つことができます。管理者は別の管理者を作成できません。管理者は他のユーザーを作成できます。管理者は、レポートビューアなどの役割を作成することもできます。

権限p1、p2、およびp3を持つスーパー管理者は、権限p5、p6、およびp7を持つ管理者を作成できる必要があります。私はそれを完全には得ていません。

論理的には、スーパーアドミン自体に権限p5、p6、およびp7がない場合、これらの権限を持つ管理者をどのように作成できますか?

これで適切なデザインを手伝ってください。

以下は私がこれまでに持っているデザインです。

USER
UserID RoleID

ROLE
RoleID RoleName

PERMISSION
PermissionID PermissionName

ROLE_PERMISSION RoleID PermissionID

ありがとう。

4

3 に答える 3

3

これは質問の誤謬です。メンバーや役割などを設定するのは簡単なことではありません。すでに作成されているライブラリを調べて、ニーズに合うかどうかを確認することをお勧めします。グーグルを開始する必要があるのは、略して「アクセス制御リスト」(acl)です。

于 2012-02-17T06:20:33.017 に答える
2

このようなデータベースを設計したら、

フォーラム、ポータル、CMSスクリプトをいくつかインストールし、それらがどのように状況を処理したかを分析し、DBスキーマを抽出して参照として使用しました。

これが役立つかもしれません

于 2012-02-17T06:49:00.403 に答える
2

XACMLなどの承認フレームワークと標準を調べる必要があります。XACMLでは、役割が急増しないように、いくつかの属性に基づいて承認を定義できます。したがって、ロールmanager_in_tx_with_gold_statusを作成する代わりに、次のようなルールを作成できます。

role=managerおよびlocation=TXのユーザーは、action = view onresources...を実行できます。

いくつかのベンダーソリューションとオープンソースソリューションもあります。詳細については、ウィキペディアのページと規格のホームページを確認してください。

XACMLについて話しているYoutubeチャンネルもあります。

于 2013-06-30T18:12:54.067 に答える