1. INDEX
-
Introdução
2. CONTEÚDO
-
Resumo do conteúdo:
- Este documento descreve passo a passo como instalar o postgreSQL no linux Mint LMDE 4.
- Faz um resumo do objetivo, dos benefícios e desvantagens do postgreSQL.
- Mostra a pasta onde o postgreSQL mantém suas configurações.
- Descreve os parâmetros para conectar-se com o Banco de Dados.
- Descreve os clientes cluterdb e createdb.
-
Introdução
-
Objetivo:
- O PostgreSQL é um banco de dados livre criado pela Universidade da Califórnia em Berkeley e tem mais de 30 anos de desenvolvimento ativo.
- Sua licença é mais flexível do que a licença do mysql porque o mysql é da Oracle e o PostgreSQL é da comunidade.
- O mysql por ter sua licença restritiva a comunidade criou o MariaDB e com ele veio as incompatibilidades do projetos existentes. O Lazarus não consegue conectar-se ao mariaDB e por isso estou estudando o PostgreSQL.
[🔙]
-
Pre-requisitos:
- Linguagem sql
- sistema operacional linux.
[🔙]
-
Benefícios:
- Banco de dados cliente servidor, robusto, escalável e sua licença é BSD.
[🔙]
-
Desvantagens.
- Não vi desvantagem em relação ao mysql.
- Para uma aplicação mono-usuário é mais difícil de instalar e configurar. O SqLite á mais indicado para essa tarefa.
[🔙]
-
-
Conteúdo estudado
-
Instalar postgreSQL no Linux Debian ou derivados)
-
Código ShellScript para instalar
# Instalar o servidor sudo apt install postgresql # Instalar a aplicação cliente: sudo apt install postgresql-client # Client sql aceita vários bancos de dados Link: https://dbeaver.io/ # https://en.wikipedia.org/wiki/DBeaver # [dbeaver.io/download](https://dbeaver.io/download/) # Facilidades adicionais para o PostgreSQL : https://www.postgresql.org/docs/11/contrib.html # Não deve ser instalado porque quero o básico do banco de dados para manter compatibilidade com os outros. sudo apt install postgresql-contrib # Configure o Firewall (Opcional): # Se estiver usando um firewall, abra a porta 3389, que é a porta padrão para o protocolo RDP: sudo ufw allow 5432/tcp sudo ufw reload # Selecionando o usuário postgres sudo su postgres # entrar no prompt do Postgres psql # visualizando a lista dos bancos de dados no programa psql \l # Definindo senha masterkey para o usuário Postgres \password # Para sair do programa psql \q # Sair do usuário postgres exit # Executar psql estando dentro do usuário corrente. psql -Upostgres -hlocalhost
-
Configurações para que o postgres seja acessado fora da rede local:
-
Execute os passos abaixo para definir o método de autenticação do banco:
# Parar o banco de dados postgres sudo systemctl stop postgresql sudo xed /etc/postgresql/14/main/pg_hba.conf # adicione no final do arquivo pg_hba.conf a linha abaixo e salve e saia do editor host all all 0.0.0.0/0 scram-sha-256 # Inicia o banco de dados postgres sudo systemctl start postgresql
- Nota
- Onde 0.0.0.0/0 é o intervalo de endereços que aceitará conexão de outros IPs que não seja localhost.
- A autenticação do cliente é controlada pelo arquivo pg_hba.conf veja mais...
- Métodos de autenticação
- Autenticação por senha são:
-
- O método scram-sha-256 executa a autenticação SCRAM-SHA-256, conforme descrito em RFC 7677. É um esquema de desafio-resposta que evita a detecção de senhas em conexões não confiáveis e oferece suporte ao armazenamento de senhas no servidor em um formato criptografado com hash que é considerado seguro.
-
md5
- Suporta senhas criptografadas armazenadas no catálogo do sistema pg_shadow.
- O método md5 usa um mecanismo personalizado de resposta a desafios e menos seguro. Ele evita a detecção de senhas e evita o armazenamento de senhas no servidor em texto simples, mas não oferece proteção se um invasor conseguir roubar o hash da senha do servidor. Além disso, o algoritmo hash MD5 hoje em dia não é mais considerado seguro contra determinados ataques.
- O método md5 não pode ser usado com o recurso db_user_namespace.
- Para facilitar a transição do método md5 para o método SCRAM mais recente, se md5 for especificado como um método em pg_hba.conf mas a senha do usuário no servidor estiver criptografada para SCRAM (veja abaixo), então a autenticação baseada em SCRAM será escolhida automaticamente.
-
password
- O método password envia a senha em texto não criptografado e, portanto, é vulnerável à detecção de senha “sniffing< /span>password poderá ser usado com segurança. (Embora a autenticação por certificado SSL possa ser uma escolha melhor se depender do uso de SSL). ataques. Deve sempre ser evitado, se possível. Se a conexão estiver protegida por criptografia SSL, então ”.
-
- Notas:
- O cliente dbeaver-ce não aceita o método md5, crypt e password
- A senha de cada usuário do banco de dados é armazenada no pg_authid catálogo do sistema.
- Autenticação por senha são:
- Nota
-
Definir no arquivo /etc/postgresql/14/main/postgresql.conf os parâmetros:
-
listen_addresses : Especifica os endereços TCP/IP nos quais o servidor deve escutar conexões de aplicativos cliente.
-
O valor assume a forma de uma lista separada por vírgulas de nomes de host e/ou endereços IP numéricos.
-
A entrada especial * corresponde a todas as interfaces IP disponíveis.
-
A entrada 0.0.0.0 permite escutar todos os endereços IPv4
-
A entrada :: permite escutar todos os endereços IPv6.
-
Nota:
- Se a lista estiver vazia, o servidor não escuta nenhuma interface IP; nesse caso, apenas soquetes de domínio Unix podem ser usados para conectar-se a ele.
- Se a lista não estiver vazia, o servidor será iniciado se puder escutar pelo menos um endereço TCP/IP.
- Um aviso será emitido para qualquer endereço TCP/IP que não possa ser aberto.
- O valor padrão é localhost , que permite apenas conexões locais de “loopback” TCP/IP.
- O padrão é 'localhost'; use '*' para todos (a alteração requer reinicialização) e essa lista de endereços é separados por vírgula
-
Exemplos:
# Só aceita conexão local listen_addresses = 'localhost' # Aceitas conexão de todos os IPS IPv4 e IPv6 listen_addresses = '*' # Aceitas conexão do localhost e do ip 192.168.15.2 listen_addresses = 'localhost,192.168.15.2'
-
O arquivo pode ser editado usando os comandos abaixo:
# Parar o banco de dados postgres sudo systemctl stop postgresql # Edita o arquivo postgreSQL.conf sudo xed /etc/postgresql/14/main/postgresql.conf # Inicia o banco de dados postgres sudo systemctl start postgresql
-
Referências:
-
-
port = 5432 (change requires restart)
-
-
-
Dados para conexão com banco de dados postgres
- DataBaseName : postgres
- HostName : 127.0.0.1 # Obs: a porta 5432 não precisa informar no Lazarus quando for máquina local.
- UserName : postgres
- Password : masterkey
-
A versão Linux Mint LMDE 4 Debian cria os arquivos de configurações na pasta: /etc/postgresql/14/main
-
A instalação cria o arquivo /etc/postgresql/14/main/postgresql.conf com os parâmetros básico do postgresql.
-
Parâmetros importantes que devem se alterados para atender a demanda:
- data_directory = '/var/lib/postgresql/14/main' Nota: Pode ser qualquer outro lugar.
- data_directory = '/home/paulosspacheco/Documentos/db/postgresql'
- Nota:
-
É necessário mover o conteúdo /var/lib/postgresql/14/main para /home/paulosspacheco/Documentos/db/postgresql usando o seguinte comando:
# Parar o banco de dados postgres sudo systemctl stop postgresql # Entrar no arquivo abaixo e trocar comentar a linha data_directory = '/var/lib/postgresql/14/main' # Acrescentar a linha: data_directory = '/home/paulosspacheco/Documentos/db/postgresql' # Após as alterações acima salvar o arquivo /etc/postgresql/14/main/postgresql.conf sudo xed /etc/postgresql/14/main/postgresql.conf # Clonar a pasta /var/lib/postgresql/14/main para a pasta /home/paulosspacheco/Documentos/db/postgresql sudo rsync -av /var/lib/postgresql/14/main /home/paulosspacheco/Documentos/db/postgresql # Inicia o banco de dados postgres sudo systemctl start postgresql
-
- Nota:
-
Como reiniciar o servidor postgres:
# comando 01 sudo /etc/init.d/postgresql restart # ou sudo service postgresql restart
-
Como parar o servidor postgres:
sudo /etc/init.d/postgresql stop
-
Como iniciar o servidor postgres:
sudo /etc/init.d/postgresql start
-
-
Arquivo de log que deve ser apagado com frequência:
- /var/lib/pgsql/data/pg_log
-
-
-
Referências:
-
Aplicativos Clientes disponível do shell do linux
-
clusterdb - um cluster de banco de dados PostgreSQL.
-
Código ShellScript
# Para agrupar uma única tabela foo em um banco de dados chamado xyzzy : clusterdb --table foo xyzzy
-
-
createdb - Cria um banco de dados PostgreSQL
-
Código ShellScript
# conecta-se ao usuário postgres: su postgres # Cria o banco de dados teste: createdb teste # Para criar o banco de dados teste usando o servidor em host localhost, porta 5000, usando o template0 banco de dados modelo, aqui está o comando de linha de comando e o comando SQL equivalente: createdb -p 5000 -h localHost -T template0 -e teste # CREATE DATABASE teste TEMPLATE template0;
-
-
[🔙]
-
-
Aplicativo Cliente GUI dbeaver
-
O DBeaver Community Edition (DBeaver CE) é uma ferramenta de gerenciamento de banco de dados relacional de código aberto. Ele oferece suporte a vários bancos de dados, como MySQL, PostgreSQL, SQLite, Oracle, Microsoft SQL Server, e muitos outros. O DBeaver CE é uma versão gratuita e de código aberto da ferramenta, projetada para ser usada por desenvolvedores, administradores de banco de dados e qualquer pessoa envolvida no gerenciamento e manipulação de bancos de dados.
-
Principais características do DBeaver CE:
- Conectividade com Múltiplos Bancos de Dados: Oferece suporte a uma ampla variedade de sistemas de gerenciamento de banco de dados, permitindo que os usuários se conectem a diferentes bancos de dados a partir de uma única interface.
- Interface Gráfica Intuitiva: Possui uma interface de usuário gráfica intuitiva que facilita o desenvolvimento, gerenciamento e consulta de bancos de dados.
- Editor SQL: Inclui um editor SQL poderoso com realce de sintaxe, conclusão automática e outras funcionalidades que facilitam a escrita e execução de consultas SQL.
- Gerenciamento de Metadados: Permite a visualização e edição de metadados do banco de dados, como tabelas, índices, procedimentos armazenados, entre outros.
- Exportação e Importação de Dados: Facilita a transferência de dados entre diferentes fontes, com suporte a várias opções de exportação e importação.
- Visualização de Dados: Oferece recursos visuais para a visualização de dados, incluindo gráficos e ferramentas de exploração de dados.
- Suporte a Plugins: Permite a extensão de funcionalidades por meio de plugins, proporcionando flexibilidade para atender a diferentes necessidades.
-
O DBeaver CE é uma escolha popular devido à sua versatilidade e ao fato de ser gratuito e de código aberto. No entanto, é importante observar que existem versões comerciais do DBeaver (DBeaver EE) que oferecem recursos adicionais e suporte aprimorado, mas a versão Community Edition é uma opção robusta para muitos desenvolvedores e administradores de banco de dados.
-
Como instalar o cliente GUI postgreSQL dbeaver:
- Baixar pacote Dbeaver em dbeaver.io
- Instalar pacote.
-
Linux Debian ou derivados
-
Baixar pacote Linux Debian package (installer)
cd ~Download sudo apr install ./dbeaver-ce_23.3.0_amd64.deb
-
Obs:
- Observe nome do arquivo ao clicar no link para download porque pode mudar o número da versão.
-
-
brew install --cask dbeaver-community
-
-
-
Como trocar a senha do banco postgreSQL no linux caso se esqueça?
-
Passo 01:
-
Mudar o tipo de acesso no arquivo pg_hba.conf:
# Parar o banco de dados postgres sudo systemctl stop postgresql sudo xed /etc/postgresql/14/main/pg_hba.conf # Procurar a linha host all all localhost scram-sha-256 e troque para # host all all localhost trust # Inicia o banco de dados postgres sudo systemctl start postgresql
-
-
Passo 02
-
Entrar no usuário postgres, executar programa psql e alterar a senha;
# logar-se ao usuário postgres: sudo su postgres # Executar cliente psql: psql -U postgres; # Alterar a senha: ALTER ROLE postgres PASSWORD 'nova senha'; # Sair do cliente psql \q # sair do usuário postgres
-
-
Passo 03:
-
Retornar ao tipo de acesso original no arquivo pg_hba.conf:
# Parar o banco de dados postgres sudo systemctl stop postgresql sudo xed /etc/postgresql/14/main/pg_hba.conf # Procurar a linha host all all localhost trust e troque para # host all all localhost scram-sha-256 # Inicia o banco de dados postgres sudo systemctl start postgresql
-
-
-
-
REFERÊNCIAS GLOBAIS
-
HISTÓRICO
- 14/12/2023
- 14/12/2023
-
Criar este documento baseado no modelo03.md ;
-
Escrever tópico Objetivos;
-
Escrever tópico Pre-requisitos
-
Escrever tópico Benefícios
-
Escrever tópico desvantagens
-
Escrever tópico Instalar no linux Mint LMDE 4
-
Escrever tópico Aplicativos Clientes disponível do shell do linux
-
Escrever tópico Aplicativo Cliente GUI dbeaver
-
Escrever tópico Referências
-
Atualizar o histórico deste documento.
-
Testar este documento depois após uma semana de concluído.
-
[🔙]
-