こんにちは。
タイトルの通り、ユーザーの権限管理のDB設計についてのアドバイスをいただきたいです。
現在、以下のDB設計でユーザーに権限を持たせています。
しかし、この設計だと管理したい権限が増えるたびにUSER_ROLESに新しい列を追加する必要があり、あまり好ましくない設計のような気がしています。
他の開発の現場ではどのように権限を管理しているのでしょうか?
今の設計ではアクセスできるデータの範囲しか管理できませんが、後々はより細かい権限を管理したいと思っています。
(AWSのIAMのようにユーザーのアクセス権限をチェックボックスで選択し、その権限をユーザーに持たせて実行できるAPIを制限するイメージです。)
----現在の設計----
USERSテーブル
Field | Type | Remarks |
---|---|---|
id | bigserial | サロゲートキー |
name | varchar(50) | 名前 |
user_role_id | bigint | user_roles.id |
USER_ROLESデーブル
Field | Type | Remarks |
---|---|---|
id | bigserial | サロゲートキー |
name | varchar(50) | 名前 |
project_access | varchar(30) | level of access to project section |
staff_access | varchar(30) | level of access to staff section |
report_access | varchar(30) | level of access to report section |
※ **accessは固定値(all/own)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。