非スーパーユーザーがpostgresqlサーバーで他のユーザーを見るのを禁止するにはどうすればよいですか?
元。現在ログインしているユーザーがスーパーユーザーでない場合、
SELECT * from pg_roles;
また
\ du
彼の役割を持つ行のみである必要があります
非スーパーユーザーがpostgresqlサーバーで他のユーザーを見るのを禁止するにはどうすればよいですか?
元。現在ログインしているユーザーがスーパーユーザーでない場合、
SELECT * from pg_roles;
また
\ du
彼の役割を持つ行のみである必要があります
システムカタログの認証IDテーブルへのアクセスを取り消すことができます。
REVOKE SELECT ON pg_catalog.pg_authid FROM public;
REVOKE SELECT ON pg_catalog.pg_auth_members FROM public;
アクセスを取り消すだけpg_roles
では不十分であることに注意してくださいpg_roles
。ビューオーバーだけでありpg_authid
、ビュークエリを手動で実行するか、同じクエリで新しいビューを定義するのは簡単です。information_schema
ビューも直接使用され、へのpg_authid
アクセスを取り消しても影響を受けませんpg_roles
。pg_roles
へのアクセスを取り消した場合は、へのアクセスを取り消す必要はありませんpg_authid
。
グローバルテーブルへのアクセスを取り消すことは、データベースごとの操作であることに注意してください。
システムカタログへのアクセスを取り消すと、次のような副作用が発生する可能性があります。
通常、サポートされているとは見なされません。
revoke select on pg_roles from public;