PostgreSQL-「パブリック」の役割は誰または何ですか?


11

私がコラムでinformation_schema.role_table_grantspublicたときに見てgranteeいました、それから私はチェックしましたinformation_schema.enabled_rolesが、これrole_nameは存在しません。

=>誰または何のpublic役割ですか?

回答:


9

マニュアルから:

キーワードPUBLICは、特権がすべてのロールに付与されることを示します。これには、後で作成されるロールも含まれます。PUBLICは、常にすべてのロールを含む暗黙的に定義されたグループと考えることができます。特定のロールには、直接付与された特権、現在のメンバーであるロールに付与された特権、およびPUBLICに付与された特権の合計があります。


7

これは事実ですが、全体像ではありません。パブリックは、他のロールが属する暗黙的なロールとしても機能し、継承されて反映および報告されるとは限らない独自の権限を持っています。

デフォルトでは、パブリックスキーマに対する作成権限が付与されます。これを削除しないと、読み取り専用ユーザーを作成するための他のすべての正しい手順により、そのユーザーもパブリックスキーマに新しいオブジェクトを作成できるようになり、所有権によりデータをそこに配置できます。これを防ぐには

REVOKE ALL ON SCHEMA public FROM PUBLIC;

同様に、データベースレベルでの使用を削除する権限も付与します

REVOKE ALL ON DATABASE all_database FROM PUBLIC;

ここに良い記事:https : //wiki.postgresql.org/images/d/d1/Managing_rights_in_postgresql.pdf

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.