====== PostgreSQL ======
==== Common Commands ====
List of Databases :
psql -l
\? Help
\d ~= desc
\c -- select database
\dt Show Tables
\dT list datatypes
\df list functions
\di list indexes
\dv list views
\da [PATTERN] list aggregate functions
\db [PATTERN] list tablespaces (add "+" for more detail)
\dc [PATTERN] list conversions
\dC list casts
\dd [PATTERN] show comment for object
\dD [PATTERN] list domains
\df [PATTERN] list functions (add "+" for more detail)
\dg [PATTERN] list groups
\dn [PATTERN] list schemas (add "+" for more detail)
\do [NAME] list operators
\dl list large objects, same as \lo_list
\dp [PATTERN] list table, view, and sequence access privileges
\dT [PATTERN] list data types (add "+" for more detail)
\du [PATTERN] list users
\l list all databases (add "+" for more detail)
\z [PATTERN] list table, view, and sequence access privileges (same as \dp)
==== Admin SQL ====
== Create User ==
CREATE ROLE k2patel LOGIN PASSWORD 'test' VALID UNTIL 'infinity';
== Create Table Space ==
CREATE TABLESPACE k2patel OWNER k2patel LOCATION '/var/lib/pgsql/k2patel';
== Create Database ==
CREATE DATABASE k2patel WITH OWNER = k2patel ENCODING = 'UTF8' TABLESPACE = k2patel LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1;
== List Current Activity ==
select * from pg_stat_activity;
== Change Pasword ==
ALTER USER postgres WITH ENCRYPTED PASSWORD 'password';
== Read Only User ==
This only allow user to access database but can not write to it.\\
Before you grant make sure you selected database else it could not work
CREATE ROLE carol;
ALTER ROLE carol WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN ENCRYPTED PASSWORD 'password';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO carol;
If there is ERROR : pg_dump: The command was: LOCK SEQUENCE public.client_group IN ACCESS SHARE MODE See next Section
\dp public.client_group; # check permission
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO backup;
Even you can use above commands to create backup user for specific database.
==== Getting Connection Information ====
select inet_server_addr();
Following is the available procedures / variable.
Name Description
current_catalog name of current database (called "catalog" in the SQL standard)
current_database() name of current database
current_schema[()] name of current schema
current_schemas(boolean) names of schemas in search path, optionally including implicit schemas
current_user user name of current execution context
current_query() text of the currently executing query, as submitted by the client (might contain more than one statement)
pg_backend_pid() Process ID of the server process attached to the current session
pg_listening_channels() channel names that the session is currently listening on
inet_client_addr() address of the remote connection
inet_client_port() port of the remote connection
inet_server_addr() address of the local connection
inet_server_port() port of the local connection
pg_my_temp_schema() OID of session's temporary schema, or 0 if none
pg_is_other_temp_schema(oid) boolean is schema another session's temporary schema?
pg_postmaster_start_time() server start time
pg_conf_load_time() configuration load time
session_user session user name
user equivalent to current_user
version() PostgreSQL version information