It's my personal cheatsheet. Please feel free to make it usable for you.
$ docker-compose start/up -d/stop/down/restart {container_name}
Run PostgreSQL in docker container:
$ docker run -d -p host_port:container_port -v local_path:/path/on/container --name container_name -e POSTGRES_PASSWORD=password postgres
Login to the PostgreSQL:
$ docker exec -it {CONTAINER ID} psql -U postgres
psql -h db_host -p db_port -U db_username db_name -W
To every new database, no user will be able to connect.
REVOKE CONNECT ON DATABASE template1 FROM PUBLIC;
# CREATE ROLE "db_username" WITH SUPERUSER LOGIN PASSWORD 'password';
# CREATE ROLE "db_username" WITH LOGIN PASSWORD 'password';
Create a database named "db_name".
# CREATE DATABASE "db_name";
REVOKE CONNECT ON DATABASE "database_name" FROM PUBLIC;
# GRANT ALL PRIVILEGES ON DATABASE "db_name" TO "username";
Connect to the
db_name
before running the following command:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "username";
Connect to the
db_name
before running the following command:
GRANT ALL PRIVILEGES ON TABLE schema_name.db_name TO "username";
GRANT CONNECT ON DATABASE "database_name" TO "rolename";
ALTER DATABASE "db_name" OWNER TO "db_user";
# \c db_name
sudo -u postgres psql
postgres=# CREATE DATABASE mydb;
postgres=# CREATE ROLE myuser WITH ENCRYPTED PASSWORD 'mypass';
postgres=# GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
After applying the command, we will see the password prompt:
$ pg_dump -i -O db_name -U db_username -h db_hostname -p 5432 -W -n schema -f /path/to/backup/file.sql
After applying the command, we will see the password prompt:
$ psql -U db_username -h db_hostname --port 5432 -W -d db_name -f /path/to/backup/file.sql
$ sudo su
$ username='username'
$ adduser $username --disabled-password --gecos ""
$ usermod -aG sudo $username
$ gpasswd -a $username docker
$ mkdir -p /home/$username/.ssh
$ touch /home/$username/.ssh/authorized_keys
$ chown -R $username:$username /home/$username/
$ vim /home/$username/.ssh/authorized_keys
pg_md5 --config-file /usr/local/etc/pgpool.conf --md5auth --username='db_user' 'db_password'