SV-214067r508027_rule
V-214067
SRG-APP-000328-DB-000301
PGS9-00-002200
CAT II
10
Implement the organization's DAC policy in the security configuration of the database and PostgreSQL, and, if applicable, the security configuration of the application(s) using the database.
To GRANT privileges to roles, as the database administrator (shown here as "postgres"), run statements like the following examples:
$ sudo su - postgres
$ psql -c "CREATE SCHEMA test"
$ psql -c "GRANT CREATE ON SCHEMA test TO bob"
$ psql -c "CREATE TABLE test.test_table(id INT)"
$ psql -c "GRANT SELECT ON TABLE test.test_table TO bob"
To REVOKE privileges to roles, as the database administrator (shown here as "postgres"), run statements like the following examples:
$ psql -c "REVOKE SELECT ON TABLE test.test_table FROM bob"
$ psql -c "REVOKE CREATE ON SCHEMA test FROM bob"
Review system documentation to identify the required discretionary access control (DAC).
Review the security configuration of the database and PostgreSQL. If applicable, review the security configuration of the application(s) using the database.
If the discretionary access control defined in the documentation is not implemented in the security configuration, this is a finding.
If any database objects are found to be owned by users not authorized to own database objects, this is a finding.
To check the ownership of objects in the database, as the database administrator, run the following:
$ sudo su - postgres
$ psql -c "\dn *.*"
$ psql -c "\dt *.*"
$ psql -c "\ds *.*"
$ psql -c "\dv *.*"
$ psql -c "\df+ *.*"
If any role is given privileges to objects it should not have, this is a finding.
V-214067
False
PGS9-00-002200
Review system documentation to identify the required discretionary access control (DAC).
Review the security configuration of the database and PostgreSQL. If applicable, review the security configuration of the application(s) using the database.
If the discretionary access control defined in the documentation is not implemented in the security configuration, this is a finding.
If any database objects are found to be owned by users not authorized to own database objects, this is a finding.
To check the ownership of objects in the database, as the database administrator, run the following:
$ sudo su - postgres
$ psql -c "\dn *.*"
$ psql -c "\dt *.*"
$ psql -c "\ds *.*"
$ psql -c "\dv *.*"
$ psql -c "\df+ *.*"
If any role is given privileges to objects it should not have, this is a finding.
M
3994