Open7

postgresのuserの管理の仕方を考える

mattunmattun

といっても基本的にはroleベースのアクセスで継承はしない。
superユーザの管理をめざすというだけ

mattunmattun

まずは、本当のroot ユーザー(システムによって作られる)
次に、admin系のユーザー、ユーザーを作成したりシステムを壊す以外の大体の運用が可能

次にapplication系のユーザー
これはアクセスするサービスごとに権限を管理する。

mattunmattun

たしかawsだとpostgresのroleを継承しても手に入れられない権限があるはずなので、それがrootって感じ。

mattunmattun

試しにこの辺の記事を参考にduをherokuでうってみた。同じサーバー内でdbだけを分離しているのでこんな感じになるっぽい。
https://www.smpl-rfrns.net/SQL/PostgreSQL/user.html

| zslgppiabtdwnp            | False    | True       | False         | False       | True
| zspccllrwuhvpn            | False    | True       | False         | False       | True
| zsqjbnocejenee            | False    | True       | False         | False       | True
| zteioaopaaxzzl            | False    | True       | False         | False       | True
| ztfplukzuzllaa            | False    | True       | False         | False       | True
| ztgpmvhlhmlkuw            | False    | True       | False         | False       | False
| ztsceviblrxkjf            | False    | True       | False         | False       | True
| ztyjarrtewjnjs            | False    | True       | False         | False       | True
| zuddmjphxpinqh            | False    | True       | False         | False       | True
| zuhkftqyqgasxe            | False    | True       | False         | False       | True
| zunfozcjiagqjk            | False    | True       | False         | False       | True
| zupbrngcjxggvy            | False    | True       | False         | False       | True
| zuuqqjghunxrmf            | False    | True       | False         | False       | True
| zuynbgoqzwigqp            | False    | True       | False         | False       | True
| zvhevsxrbyyewa            | False    | True       | False         | False       | True
| zvvzqepmhhnqqt            | False    | True       | False         | False       | True
| zwbmnlsdxdfehj            | False    | True       | False         | False       | True
| zwlcqvoenxsiey            | False    | True       | False         | False       | True
| zwqxfsqfsnwikb            | False    | True       | False         | False       | True
| zxbrnmutjkhmkv            | False    | True       | False         | False       | True
| zxovmytauezaeg            | False    | True       | False         | False       | True
| zxxhbmiuzxulgb            | False    | True       | False         | False       | True
| zyasnfgsdlwkmg            | False    | True       | False         | False       | True
| zyzltgvbfsaghb            | False    | True       | False         | False       | True
| zzbscxbumbekbj            | False    | True       | False         | False       | True
| zznnnguqimswzq            | False    | True       | False         | False       | True
| zzpamsydfmklrb            | False    | True       | False         | False       | True
| zzpuvecyuhkddx            | False    | True       | False         | False       | True
+---------------------------+----------+------------+---------------+-------------+-------
SELECT 2735
Time: 1.619s (1 second), executed in: 0.851s (0.85 second)

mattunmattun

databaseの作成は一つのuserだけで行うようにする。異なるユーザーで作成したdatabaseなどでownerがおかしいことになっているのは面倒なので

mattunmattun

roleという概念しかないので、基本的にはloginできる、inheritなどの運用でuserとroleが管理されていく