Last active
January 5, 2016 19:11
-
-
Save adamwespiser/705eb110983fd1e29de1 to your computer and use it in GitHub Desktop.
A quick list of DBA commands for postgresql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- http://pentestmonkey.net/cheat-sheet/sql-injection/postgres-sql-injection-cheat-sheet | |
-- show tables | |
select * from pg_tables; | |
-- get all the active connections/tasks | |
select * from pg_stat_activity; | |
-- get sizes of active databases | |
\l+ | |
-- get indexes | |
sELECT i.relname as indname, | |
i.relowner as indowner, | |
idx.indrelid::regclass, | |
am.amname as indam, | |
idx.indkey, | |
ARRAY( | |
SELECT pg_get_indexdef(idx.indexrelid, k + 1, true) | |
FROM generate_subscripts(idx.indkey, 1) as k | |
ORDER BY k | |
) as indkey_names, | |
idx.indexprs IS NOT NULL as indexprs, | |
idx.indpred IS NOT NULL as indpred | |
FROM pg_index as idx | |
JOIN pg_class as i | |
ON i.oid = idx.indexrelid | |
JOIN pg_am as am | |
ON i.relam = am.oid; | |
-- get indexes | |
SELECT | |
U.usename AS user_name, | |
ns.nspname AS schema_name, | |
idx.indrelid :: REGCLASS AS table_name, | |
i.relname AS index_name, | |
idx.indisunique AS is_unique, | |
idx.indisprimary AS is_primary, | |
am.amname AS index_type, | |
idx.indkey, | |
ARRAY( | |
SELECT pg_get_indexdef(idx.indexrelid, k + 1, TRUE) | |
FROM | |
generate_subscripts(idx.indkey, 1) AS k | |
ORDER BY k | |
) AS index_keys, | |
(idx.indexprs IS NOT NULL) OR (idx.indkey::int[] @> array[0]) AS is_functional, | |
idx.indpred IS NOT NULL AS is_partial | |
FROM pg_index AS idx | |
JOIN pg_class AS i | |
ON i.oid = idx.indexrelid | |
JOIN pg_am AS am | |
ON i.relam = am.oid | |
JOIN pg_namespace AS NS ON i.relnamespace = NS.OID | |
JOIN pg_user AS U ON i.relowner = U.usesysid | |
WHERE NOT nspname LIKE 'pg%'; -- Excluding system tables | |
sELECT nspname || '.' || relname AS "relation", | |
pg_size_pretty(pg_relation_size(C.oid)) AS "size" | |
FROM pg_class C | |
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) | |
WHERE nspname NOT IN ('pg_catalog', 'information_schema') | |
ORDER BY pg_relation_size(C.oid) DESC | |
LIMIT 20; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment