# PostgreSQL CheatSheet <div style="text-align: center"> <img src="https://upload.wikimedia.org/wikipedia/commons/2/29/Postgresql_elephant.svg" height="300" alt="PostgreSQL" /> </div> <br /> > [TOC] ## Instalação ### Rocky Linux 9.2 ``` dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf -qy module disable postgresql dnf install postgresql15-server /usr/pgsql-15/bin/postgresql-15-setup initdb systemctl --now enable postgresql-15 ``` ### Inicializar o banco de dados ``` /usr/pgsql-15/bin/postgresql-15-setup initdb ``` ## Debian ``` apt update apt upgrade --no-install-recommends --no-install-suggests -y apt install postgresql systemctl --now enable postgresql ``` ## Uso ### Conectar ao banco de dados ```shell su postgres -c psql ``` ### Criar um usuário para um banco de dados ```sql CREATE USER [SEU_USUARIO] WITH PASSWORD '[SUA_SENHA]'; ``` ### Criar um super-usuário ```sql CREATE USER [SEU_USUARIO] WITH SUPERUSER PASSWORD '[SUA_SENHA]'; ``` ### Ou alterar um usuário para super-usuário ```sql ALTER USER [SEU_USUARIO] WITH SUPERUSER; ``` ### Criar um banco de dados ```sql CREATE DATABASE [NOME_DO_BANCO]; ``` ou ```sql CREATE DATABASE [NOME_DO_BANCO] WITH OWNER [SEU_USUARIO]; ``` ### Adicionar permissões para um usuário a um determinado banco de dados ```sql GRANT ALL ON DATABASE [NOME_DO_BANCO] TO [SEU_USUARIO]; ALTER DATABASE [NOME_DO_BANCO] OWNER TO [SEU_USUARIO]; ``` ### Adicionar permissões para um usuário criar bancos e roles ```sql ALTER USER [SEU_USUARIO] CREATEDB CREATEROLE; ``` :::info :bulb: Novo no PostgreSQL 15 e superiores. Fonte: [StackOverflow](https://stackoverflow.com/a/74111630/1844007 "StackOverflow"). ::: ### Alterar senha de um usuário ```sql ALTER USER [SEU_USUARIO] WITH PASSWORD 'NOVA_SENHA'; ``` ## Extras ### Liberar conexões remotas /var/lib/pgsql/15/data/pg_hba.conf (Rocky) /etc/postgresql/15/main/pg_hba.conf (Debian) ``` # IPv4 local connections: host all all 0.0.0.0/0 md5 ``` /var/lib/pgsql/15/data/postgresql.conf (Rocky) /etc/postgresql/15/main/postgresql.conf (Debian) ``` # - Connection Settings - listen_addresses = '*' ``` > Fonte: [StackOverflow](https://stackoverflow.com/a/18580598/1844007) ## Referências - [PostgreSQL Tutorial](https://www.postgresqltutorial.com/postgresql-cheat-sheet/) - [TimeScale](https://www.timescale.com/learn/postgres-cheat-sheet/databases) - [Digital Ocean](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-rocky-linux-9) - [Prisma](https://www.prisma.io/dataguide/postgresql/connecting-to-postgresql-databases) - [StackOverflow](https://stackoverflow.com/a/74111630/1844007)