In Vertica, the SELECT privilege on all system tables in V_CATALOG and V_MONITOR is granted to PUBLIC. Therefore, by default all users can query them. And not all system tables seem appropriate to be public.
For the most part, for each of the entries, the results appear appropriately limited to a users specific grants. For instance, select * from v_catalog.columns;
returns just columns for which the user has been granted SELECT for the table and USAGE for the schema, and fortunately SELECT * FROM v_catalog.passwords;
returns no rows at all.
But, some seem overly broad, such as SELECT * FROM v_catalog.users
returns all users for all schemas.
Is there any downside to REVOKE SELECT ON v_catalog.users
for a user intended to have only SELECT access to specific tables in a specific schema? Or further revoke SELECT on V_CATALOG and V_MONITOR entirely for public users?
Limit access to specific database only, and restrict access to system tables