Overview

With respect to PostgreSQL administrative SQL commands, only superusers should have elevated privileges. PostgreSQL regular, or application, users should not possess the ability to create roles, create new databases, manage replication, or perform any other action deemed privileged. Typically, regular users should only be granted the minimal set of privileges commensurate with managing the application:

  • DDL (create table, create view, create index, etc.)
  • DML (select, insert, update, delete)

Further, it has become best practice to create separate roles for DDL and DML. Given an application called ‘payroll’, one would create the following users:

  • payroll_owner
  • payroll_user

Any DDL privileges would be granted to the payroll_owner account only, while DML privileges would be given to the payroll_user account only. This prevents accidental creation/altering/dropping of database objects by application code that run as the payroll_user account.

Excelent Compliance Solution.

Puppet is an excellent solution to ensure your databases are CIS or STIG compliant. Now you’re looking at information about only one compliance control, but managing total compliance isn’t hard either!

If you you like he prospect of easy way into continuous compliancy with minimal fuss and bother, we suggest taking a look at our solution as your go-to option. Plus, our team can help you get up and running so that you can focus on other areas of your business. What are you waiting for? Get started today!

Benchmarks

This control is used in the following benchmarks:

Skipping

To deliberately skip this control (e.g. meaning don’t use Puppet to enforce this setting), we provide you with three ways:

1) Add pg_secured::controls::excessive_administrative_privileges_are_revoked: skip to your hiera data. This will skip this control for ALL databases.
2) Add pg_secured::controls::excessive_administrative_privileges_are_revoked::dbname: skip to your hiera data. This will skip this control for specified database only.
3) Add an entry with the content excessive_administrative_privileges_are_revoked to the array value pg_secured::skip_list in your hiera data.

Attributes

Attribute Name Short Description
title The instance to apply the control to.

title

The instance to apply the control to.

All controls need an instance to apply the control to. Here is a simple example:

pg_secured::controls::control_name { 'instance':}

In this example, the string instance is the instance to apply the control to.

Back to overview of controls::excessive_administrative_privileges_are_revoked