こんにちは。
タイトルの通り、ユーザーの権限管理の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)



バッドをするには、ログインかつ
こちらの条件を満たす必要があります。