Granting selects.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Sun, 15 Sep 2019 00:06:40 +0300
changeset 2373 07d81edeaba6
parent 2372 a6ba7fce5ed9
child 2374 e050994e0810
Granting selects.
postgres.rst
--- a/postgres.rst	Thu May 30 01:20:55 2019 +0300
+++ b/postgres.rst	Sun Sep 15 00:06:40 2019 +0300
@@ -84,6 +84,10 @@
 https://www.postgresql.org/docs/current/sql-createrole.html
   ``CREATE ROLE``.
 
+Granting selects::
+
+  GRANT SELECT ON ALL TABLES IN SCHEMA public TO user2;
+
 Change password
 ===============
 ::
@@ -221,8 +225,25 @@
   SELECT * FROM pg_constraint WHERE conrelid = (SELECT oid FROM pg_class WHERE relname LIKE 'tblName');
   select * from pg_constraint where conname like '%conName%';
 
+Show constraints and columns to given table::
+
+  select
+    c.constraint_name,
+    x.table_schema as schema_name, x.table_name, x.column_name,
+    y.table_schema as foreign_schema_name, y.table_name as foreign_table_name, y.column_name as foreign_column_name
+  from information_schema.referential_constraints c
+  join information_schema.key_column_usage x
+      on x.constraint_name = c.constraint_name
+  join information_schema.key_column_usage y
+      on y.ordinal_position = x.position_in_unique_constraint
+      and y.constraint_name = c.unique_constraint_name
+  where y.table_name = 'sa_pnr'
+  order by c.constraint_name, x.ordinal_position
+
 https://www.postgresql.org/docs/current/catalog-pg-constraint.html
   pg_constraint.
+https://stackoverflow.com/questions/1152260/postgres-sql-to-list-table-foreign-keys
+  List table foreign keys.
 
 List functions::
 
@@ -265,7 +286,7 @@
 
   \l+
 
-List tables sizes::
+List tables sizes (and constraints)::
 
   \d+
 
@@ -289,6 +310,13 @@
   LEFT JOIN pg_class t ON t.reltoastrelid = p.oid
   ORDER BY p.relpages DESC;
 
+Largest TOAST::
+
+  select tbl.relname, toast.relname, toast.relpages
+  from pg_class tbl, pg_class toast
+  where tbl.reltoastrelid = toast.oid
+  order by toast.relpages desc;
+
 Size of types::
 
   SELECT pg_column_size(5::smallint);
@@ -314,6 +342,13 @@
 
   select * from pg_stat_user_tables;
 
+Table statistics
+================
+
+Full table statistics is in ``pg_statistics`` table which is accessible only by superuser.
+
+Human readable stats are in ``pg_stats`` view.
+
 Using psql client
 =================
 
@@ -326,7 +361,7 @@
 
 Connect by::
 
-  $ psql -U $USER -h $HOST  $SCHEMA
+  $ psql -U $USER -h $HOST -p $PORT  $SCHEMA
 
 How to view execution plan::