create user:
CREATE ROLE username WITH LOGIN PASSWORD 'password';
show users:
\du
create database:
CREATE DATABASE databasename;
show databases:
\l
use a specific db:
\c dbnamehere;
give user permissions (this is too broad!!):
GRANT ALL PRIVILEGES ON DATABASE super_awesome_database TO johndoe;
give user (less) permissions:
GRANT CONNECT ON DATABASE database_name TO username;
GRANT USAGE ON SCHEMA public TO username;
(just 1 table)
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE sometablenamehere TO username;
(all tables)
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO username;
(for INSERT, if auto-incremented ID, user will need access to SEQ):
GRANT USAGE, SELECT ON SEQUENCE sometablename_id_seq TO username;
give user ownership of db:
ALTER DATABASE db_name OWNER TO new_owner_username;
change table owner:
ALTER TABLE <tablename> OWNER TO <username>
show tables:
\dt
describe table:
\d <table name>
insert (use single quote for strings):
insert into mm_thoughts_contexts (t_id, mm_id) VALUES
(41, 289),
(5, 289),
(35, 289);
read only user:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO joeuser;