Pesquisa de site

Como instalar o banco de dados PostgreSQL no Debian 10


PostgreSQL (às vezes chamado de Postgres) é o mais avançado sistema de banco de dados de uso geral e objeto-relacional de código aberto com uma arquitetura comprovada que roda em todos os principais sistemas operacionais. É um sistema de banco de dados de alto desempenho, estável, escalável e extensível que fornece integridade de dados incrível e suporta complementos poderosos.

É importante ressaltar que o PostgreSQL permite que você defina seus próprios tipos de dados, adicione funções personalizadas e até mesmo escreva código de diferentes linguagens de programação, como C/C++, Java, etc., sem recompilar seu banco de dados.

PostgreSQL está sendo usado por empresas de tecnologia conhecidas, como Apple, Fujitsu, Red Hat, Cisco, Juniper Network, etc.

Neste artigo, mostraremos como instalar, proteger e configurar o servidor de bancos de dados PostgreSQL no Debian 10.

Requerimento:

  1. Instale um servidor mínimo Debian 10 (Buster)

Instalando o servidor PostgreSQL no Debian 10

Para instalar o servidor de banco de dados PostgreSQL, use o gerenciador de pacotes APT padrão, que instalará o servidor e o cliente PostgreSQL 11.

apt install postgresql-11 postgresql-client-11

No Debian, como qualquer outro daemons, o banco de dados Postgres é inicializado imediatamente após a conclusão da instalação do pacote, conforme mostrado na imagem a seguir.

Para verificar se o banco de dados Postgres está realmente inicializado, você pode usar o utilitário pg_isready que verifica o status da conexão de um servidor PostgreSQL, como segue.

pg_isready 

Além disso, no systemd, o serviço Postgres também é iniciado automaticamente e habilitado para iniciar na inicialização do sistema. Para ter certeza de que o serviço está funcionando bem, execute o seguinte comando.

systemctl status postgresql

A seguir estão outros comandos systemctl úteis para gerenciar o serviço Postgres no systemd.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
systemctl reload postgresql 		#this reloads the service configuration

Protegendo e configurando o banco de dados PostgreSQL

Por padrão, o Postgres usa o conceito de funções para gerenciar permissões de acesso ao banco de dados e as funções de banco de dados são conceitualmente completamente separadas dos usuários do sistema operacional. Uma função pode ser um usuário ou um grupo, e uma função que possui direito de login é chamada de usuário.

Um sistema recém-inicializado sempre contém uma função predefinida chamada postgres, ela tem o mesmo nome da conta de usuário do sistema operacional chamada postgres, que é usada para acessar o psql (shell Postgres) e outros programas de banco de dados.

A conta de usuário do sistema Postgres não é protegida por senha. Para protegê-la, você pode criar uma senha usando o utilitário passwd.

passwd postgres

Além disso, a função Postgres (ou usuário administrativo do banco de dados, se preferir) não é protegida por padrão. Você também precisa protegê-lo com uma senha. Agora mude para a conta de usuário do sistema postgres e a função postgres (lembre-se de definir uma senha forte e segura), conforme mostrado.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

Em seguida, saia da conta postgres para prosseguir com o guia.

Configurando a autenticação do cliente

O arquivo de configuração principal do Postgres está localizado em /etc/postgresql/11/main/postgresql.conf. Além deste arquivo, o Postgres usa outros dois arquivos de configuração editados manualmente, que controlam a autenticação do cliente.

A autenticação do cliente é controlada pelo arquivo de configuração /etc/postgresql/11/main/pg_hba.conf. Postgres fornece muitos métodos diferentes de autenticação de cliente, incluindo autenticação baseada em senha. As conexões do cliente são autenticadas com base no endereço do host do cliente, banco de dados e usuário.

Se você optar por usar a autenticação baseada em senha, poderá implementar um destes métodos: md5 ou senha, que funcionam de forma semelhante, exceto pela forma como a senha é transmitida pela conexão. , ou seja, hashed MD5 e texto simples, respectivamente.

O uso da autenticação de senha md5 evita a detecção de senhas por hackers e evita o armazenamento de senhas no servidor em texto simples. O método de senha só pode ser usado com segurança se a conexão estiver protegida por criptografia SSL.

Neste guia, mostraremos como configurar a autenticação de senha md5 para autenticação de cliente.

vim /etc/postgresql/11/main/pg_hba.conf 

Procure a linha a seguir e altere o método de autenticação para md5 conforme mostrado na captura de tela.

local   all             all                                     md5

Salve as alterações no arquivo e saia dele. Em seguida, aplique as alterações recentes reiniciando o serviço Postgres da seguinte maneira.

systemctl restart postgresql

Criando um novo banco de dados e função/usuário de banco de dados no PostgreSQL

Nesta última seção, mostraremos como criar um novo usuário de banco de dados e uma função de banco de dados para gerenciá-lo. Primeiro, mude para a conta postgres e abra o shell do Postgres como segue.

su - postgres
psql

Para criar um banco de dados chamado “test_db ” execute o seguinte comando SQL.

postgres=# CREATE DATABASE test_db;

Em seguida, crie um usuário de banco de dados (uma função com direitos de login) que gerenciará o novo banco de dados da seguinte maneira.

postgres=#CREATE USER test_user PASSWORD ‘securep@ss_here’;     #assumes login function by default

Para se conectar ao test_db como o usuário test_user, execute o seguinte comando.

 
psql -d  test_db  -U test_user

Para obter mais informações, consulte a documentação do PostgreSQL 11.

Conclusão

Isso é por enquanto! Neste guia, mostramos como instalar, proteger e configurar o servidor de bancos de dados PostgreSQL no Debian 10. Você tem alguma pergunta ou opinião para compartilhar? Use o formulário de comentários abaixo para entrar em contato conosco.