UCF STIG Viewer Logo

PostgreSQL must uniquely identify and authenticate non-organizational users (or processes acting on behalf of non-organizational users).


Finding ID Version Rule ID IA Controls Severity
V-233524 CD12-00-001400 SV-233524r606797_rule Medium
Non-organizational users include all information system users other than organizational users, which includes organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors, guest researchers, individuals from allied nations). Non-organizational users must be uniquely identified and authenticated for all accesses other than those accesses explicitly identified and documented by the organization when related to the use of anonymous access, such as accessing a web server. Accordingly, a risk assessment is used in determining the authentication needs of the organization. Scalability, practicality, and security are simultaneously considered in balancing the need to ensure ease of use for access to federal information and information systems with the need to protect and adequately mitigate risk to organizational operations, organizational assets, individuals, other organizations, and the Nation.
Crunchy Data PostgreSQL Security Technical Implementation Guide 2022-06-13


Check Text ( C-36718r606795_chk )
PostgreSQL uniquely identifies and authenticates PostgreSQL users through the use of DBMS roles.

To list all roles in the database, as the database administrator (shown here as "postgres"), run the following SQL:

$ sudo su - postgres
$ psql -c "\du"

If users are not uniquely identified per organizational documentation, this is a finding.
Fix Text (F-36683r606796_fix)
To drop a role, as the database administrator (shown here as "postgres"), run the following SQL:

$ sudo su - postgres
$ psql -c "DROP ROLE "

To create a role, as the database administrator, run the following SQL:

$ sudo su - postgres

For the complete list of permissions allowed by roles, see the official documentation: https://www.postgresql.org/docs/current/static/sql-createrole.html