PostgreSQL Permissions

PostgreSQL Permissions

Ensure that CopyStorm is connected to a PostgreSQL database. If this is the first time setting it up, follow the recommended best practices for configuring CopyStorm with PostgreSQLarrow-up-right.

CS:Govern for PostgreSQL requires that the pgcrypto package be installed. On most installations of CopyStorm, when a PostgreSQL database schema is created, this library will have been automatically added. However on older CopyStorm installations it is possible that pgcrypto was not included. If that is the case then the following command will add this required package:

Issue this command as the Database Administrator:

Required Permissions

Permission Required
Why It’s Needed

CREATE

Allows creation of tables, functions, indexes, and triggers in the connected database.

USAGE ON SCHEMA [schema]

Allows use of the target schema (typically public) for creating objects.

CREATE ON SCHEMA [schema]

Required to create new tables and functions in the schema used by Govern.

SELECT

Allows querying Govern tables (e.g., for decrypting values, checking access roles).

INSERT

Used to insert config data like access categories and key records during setup.

UPDATE

Needed to modify Govern config data (e.g., version updates, key rotations).

DELETE

Used to remove or reset records during setup or upgrades.

REFERENCES

Required to define foreign key constraints between Govern tables.

TRIGGER

Needed to create insert/update triggers used by Govern field enforcement logic.

CREATE FUNCTION

Required to create user-defined functions like guard_archive_get, which implement field decryption and access logic for Govern.

SELECT ON pg_roles / pg_user

Allows Govern functions to check current user’s database roles for field-level access decisions.

CREATE EXTENSION pgcrypto

Required to use built-in encryption functions like pgp_sym_encrypt and pgp_sym_decrypt for CS:Govern field protection.

Check If pgcrypto Is Installed

This query checks if the pgcrypto extension is available in your database. This extension is required for encryption and decryption functions such as pgp_sym_encrypt and pgp_sym_decrypt.

Expected Output

If pgcrypto is installed, you’ll see it listed in the results, usually under the public schema. If no rows are returned, the extension is not installed.

extname
schema

pgcrypto

public

Check If the User Has USAGE,CREATE On the Current Schema

This checks if the current user has the ability to use and create objects in the given schema. Note: Having CREATE on a schema allows creating tables, views, and functions.

Expected Output

Having CREATE privilege on the current schema means the user can:

  • Create tables, which they automatically own

  • Create functions and procedures

  • Create triggers on any tables they own

This level of access satisfies the required permissions for most CS:Govern operations within that schema, including defining DML triggers, custom logic, and support functions.

has_required_schema_privileges

t

Last updated

Was this helpful?