Limiting a User’s Open Session Count
Jim Knicely authored this tip.
By default, a user can have an unlimited number of connections across the database cluster.
Example:
[dbadmin@s18384357 ~]$ vsql -U jim -w 'pw'
Welcome to vsql, the Vertica Analytic Database interactive terminal.
Type: \h or \? for help with vsql commands
\g or terminate with semicolon to execute query
\q to quit
jim=> \! vsql -U jim -w 'pw'
Welcome to vsql, the Vertica Analytic Database interactive terminal.
Type: \h or \? for help with vsql commands
\g or terminate with semicolon to execute query
\q to quit
jim=> \! vsql -U jim -w 'pw'
Welcome to vsql, the Vertica Analytic Database interactive terminal.
Type: \h or \? for help with vsql commands
\g or terminate with semicolon to execute query
\q to quit
jim=> SELECT COUNT(*) FROM v_monitor.sessions WHERE user_name = 'jim';
COUNT
-------
3
(1 row)
Letting a user connect to a database an unlimited number of times could potentially lock out all other users if a malicious user or rogue process opens a number of sessions equal to the database’s max client sessions setting (100 by default).
To avoid that situation, limit the number of open database connections a user can have by setting the user’s MAXCONNECTIONS parameter.
Example:
dbadmin=> ALTER USER jim MAXCONNECTIONS 1;
ALTER USER
dbadmin=> \! vsql -U jim -w pw
Welcome to vsql, the Vertica Analytic Database interactive terminal.
Type: \h or \? for help with vsql commands
\g or terminate with semicolon to execute query
\q to quit
jim=> \! vsql -U jim -w pw
vsql: FATAL 7470: New session rejected because connection limit of 1 on database already met for jim
Have fun!
0