From PostgreSQL 9.x Security Technical Implementation Guide
Part of SRG-APP-000001-DB-000031
Associated with: CCI-000054
Database management includes the ability to control the number of users and user sessions utilizing PostgreSQL. Unlimited concurrent connections to PostgreSQL could allow a successful Denial of Service (DoS) attack by exhausting connection resources; and a system can also fail or be degraded by an overload of legitimate users. Limiting the number of concurrent sessions per user is helpful in reducing these risks.
To check the total amount of connections allowed by the database, as the database administrator, run the following SQL: $ sudo su - postgres $ psql -c "SHOW max_connections" If the total amount of connections is greater than documented by an organization, this is a finding. To check the amount of connections allowed for each role, as the database administrator, run the following SQL: $ sudo su - postgres $ psql -c "SELECT rolname, rolconnlimit from pg_authid" If any roles have more connections configured than documented, this is a finding. A value of -1 indicates Unlimited, and is a finding.
Note: The following instructions use the PGDATA and PGVER environment variables. See supplementary content APPENDIX-F for instructions on configuring PGDATA and APPENDIX-H for PGVER.
To configure the maximum amount of connections allowed to the database, as the database administrator (shown here as "postgres") change the following in postgresql.conf (the value 10 is an example; set the value to suit local conditions):
$ sudo su - postgres
$ vi ${PGDATA?}/postgresql.conf
max_connections = 10
Next, restart the database:
# SYSTEMD SERVER ONLY
$ sudo systemctl restart postgresql-${PGVER?}
# INITD SERVER ONLY
$ sudo service postgresql-${PGVER?} restart
To limit the amount of connections allowed by a specific role, as the database administrator, run the following SQL:
$ psql -c "ALTER ROLE
Lavender hyperlinks in small type off to the right (of CSS
class id
, if you view the page source) point to
globally unique URIs for each document and item. Copy the
link location and paste anywhere you need to talk
unambiguously about these things.
You can obtain data about documents and items in other
formats. Simply provide an HTTP header Accept:
text/turtle
or
Accept: application/rdf+xml
.
Powered by sagemincer