これは頭を動かすのに苦労していることです。もっと複雑になっているかもしれません。
私がやろうとしているのは、さまざまなアプリケーションを通じて、さまざまなレベルのアクセス権を持つデータベースにユーザーを格納する方法を開発することです。私はこれが以前に行われたことを知っていますが、彼らがそれをどのようにしたかを見つける場所がわかりません。
これが私が達成する必要があることの例です:
UserA - Access to App1, App3, App4 & can add new users to App3, but not 4 or 1.
UserB - Access to App2 only with ReadOnly access.
UserC - Access to App1 & App4 and is able to access Admin settings of both apps.
以前は、ユーザーグループを使用していました。ただし、さまざまなアプリケーションの特定の部分への個々のユーザーのアクセスをもう少し制御する必要がある段階に達しています。これは、ユーザーに役割を与え、各役割に最後の役割を継承させることができるのと同じぐらい、単純で乾燥したものであることを願っています。
今、これは私が達成する必要があることです。しかし、私はこれを行う方法を知りません。うまく機能するものを簡単に設計することは簡単にできましたが、これが行われたこと、そしてこれが研究されたことを知っており、この問題は私自身よりもはるかに優れた心によって解決されたことがわかります。
これはWebアプリケーション用で、SQL Server 2008を使用しています。パスワード(LDAP)を保存する必要はなく、保存する必要のある情報は実際には非常に制限されています。基本的に、ユーザー名とアクセス権のみ。
これは私が管理しているアプリケーションの設定です:
あなたは必要です
したがって、どのグループにトップレベルの権限があるかを確認するクエリは、次のようになります。
SELECT cr.NAME "AD_Group"、CR.ID GROUP_ROLE_ID、DECODE(a.NAME、 'APPROVE'、 'Approve Organizations'、 'CONTACTS'、 'Contact information'、 'GRANT'、 'Grant permissions'、a.NAME) 「ステージ/権限」、gp.role_id、gp.action_id、FROMアクションa、general_permission gp、ロールcr WHERE a.ID = gp.action_id AND gp.role_id = cr.ID
ユーザーがログオンすると、LDAPに、どのグループに所属しているかを照会します。次に、グループにどのような権限があるかをデータベースに問い合わせます。自分にやさしく、権限を追加します。