Revoke access to selected system tables

Posted on

Question :

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

Answer :

REVOKE SELECT ON v_catalog.users FROM public;

That should work. If you want more details check this: https://www.techonthenet.com/sql_server/grant_revoke.php

Leave a Reply

Your email address will not be published. Required fields are marked *