非スーパーユーザーが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;