Postgresロールのベストプラクティスの実装
皆さん、 Postgresのユーザーアクセス制御の設計を改善し、ベストプラクティスに沿ったものにするために、あなたの助けを借りることができます。私は小規模な実稼働Postgresサーバーの展開を手伝っていますが、私はDB管理者ではないので、危険になるのに十分なことを知っています。 Postgres v9.2のインストールが1つあるサーバーが1つあります。このインストールは複数のデータベースをホストし、それぞれが異なる「顧客」に完全にサービスを提供します。つまり、customer1はdatabase2を使用しない、使用しないなどです。通常の操作中、データベースはそれぞれ、Postgresと同じサーバーに共存するCakePHPの一致するインスタンスによってアクセスされます。この展開には最適化が考えられますが、私は主にPsqlロールに興味があります。 私が読んだものに基づいて、次の3つのタイプの役割が理にかなっているようです。 デフォルト以外のパスワードを持つスーパーユーザーpostgres 定期的なメンテナンス、DBの作成、バックアップ、復元のためのスーパーユーザー権限を持たない管理者ロール。すべての顧客データベースで何でもできるはずです。 それぞれのデータベースでCRUDする機能のみを持つユーザーロール。実装をクリーンアップする場合、独自のDBに対するより多くの権利が許容されます。 その設計を実装することは、私が自信に欠けるところです。DBとテーブルの所有権、および誰が少し濁っているのかを継承する必要があります。以下は私のデータベースとユーザーです。実装を評価するのに十分な情報ですか? Role name | Attributes | Member of -----------+------------------------------------------------+------------------- admin | Create role, Create DB | {user1, user2} postgres | Superuser, Create role, Create DB | {} user1 | | {} user2 | | {} postgres=# \l List of databases Name | …