-
Conectar ao servidor PostgreSQL:
Conecte-se ao servidor PostgreSQL usando a ferramenta de linha de comando psql como o usuário postgres.
sudo -u postgres psql
-
Conectar ao banco de dados reporting_db:
Conecte-se ao banco de dados reporting_db:
\c reporting_db
-
Criar um usuário e conceder associação ao reporting_role:
Vamos criar um novo usuário chamado report_user. Em seguida, concederemos a este usuário a associação ao reporting_role. Isso significa que report_user herdará os privilégios concedidos ao reporting_role.
CREATE USER report_user;
GRANT reporting_role TO report_user;
Você deverá ver a seguinte saída:
CREATE ROLE
GRANT ROLE
-
Configurar o PostgreSQL para Autenticação sem Senha:
Por padrão, o PostgreSQL usa a autenticação peer, que pode causar problemas de conexão neste laboratório. Alteraremos para trust para simplificar o acesso para o report_user.
Primeiro, saia do shell psql:
\q
Agora, modifique o arquivo pg_hba.conf para alterar o método de autenticação. O comando sed abaixo fará backup do arquivo original como pg_hba.conf.bak e substituirá peer por trust para conexões locais.
sudo sed -i.bak 's/^local\s\+all\s\+all\s\+peer/local all all trust/' /etc/postgresql/14/main/pg_hba.conf
Recarregue o PostgreSQL para aplicar as alterações:
sudo service postgresql reload
-
Inserir dados na tabela sales_data:
Conecte-se novamente ao banco de dados como usuário postgres.
sudo -u postgres psql -d reporting_db
Insira alguns dados de exemplo na tabela sales_data para fins de teste.
INSERT INTO sales_data (product, amount) VALUES ('Laptop', 1200.00), ('Mouse', 25.00), ('Keyboard', 75.00);
Você deverá ver a seguinte saída:
INSERT 0 3
Saia do shell psql.
\q
-
Conectar ao banco de dados reporting_db como report_user:
Abra uma nova janela de terminal e use o seguinte comando:
psql -d reporting_db -U report_user
Você será conectado ao banco de dados como report_user sem solicitação de senha.
-
Testar os privilégios:
Agora, tente selecionar dados da tabela sales_data:
SELECT * FROM sales_data;
Você deverá ver os dados que inseriu:
id | product | amount
----+----------+--------
1 | Laptop | 1200.00
2 | Mouse | 25.00
3 | Keyboard | 75.00
(3 rows)
Se você vir esta saída, significa que o report_user tem o privilégio SELECT na tabela sales_data, que foi concedido através do reporting_role.
Saia do shell psql.
\q