Os bancos de dados são cruciais e é o trabalho do administrador para controlar quais funções diferentes os usuários podem desempenhar em um determinado banco de dados. Como parte da autorização, o administrador pode definir entidades de usuário dentro do banco de dados e conceder ou revogar vários privilégios às funções.
Dessa forma, você atinge o controle sobre quem pode acessar um banco de dados e quais privilégios eles têm se puderem acessar o banco de dados. Por exemplo, você pode revogar a modificação do banco de dados ou conceder todos os privilégios no esquema a um usuário ou usuários em uma determinada tabela. Este guia detalha como usar o PostGresql para conceder a um usuário todos os privilégios no esquema a um usuário.
Como conceder privilégios aos usuários no PostgreSQL
Quando você cria uma nova função, eles obtêm alguns privilégios por padrão. No entanto, a maioria dos privilégios exige que o administrador conceda a diferentes usuários para regular o acesso e controle de um esquema. Você pode conceder todos os privilégios de uma só vez ou separadamente.
Para este tutorial, vamos criar um novo papel nomeado Linuxhint1.
$ sudo -iu postgres
# Crie função linuxhint1 Login Senha 'Linuxhint';
Observe que estamos conectados como PostGres, A função padrão criada depois de instalar o PostGresql.
Com a função (usuário) criada, podemos listar as funções disponíveis usando o seguinte comando:
# \ du
As funções disponíveis serão exibidas em um formato de tabela.
PostGres é a função padrão e a maioria dos privilégios já concedeu. No entanto, o novo papel, Linuxhint1, não tem privilégios até concedermos.
Concedendo um privilégio específico a um usuário
A função criada não pode modificar o esquema, a menos que você o permita. Vamos verificar isso primeiro criando uma tabela como a função padrão, PostGres.
# Criar nomes de tabela (m_id int gerado sempre como identidade, fname vachar (100) não nulo, lname varchar (100) não nulo, idade int);
Você pode listar as relações disponíveis, como mostrado abaixo:
Em seguida, abra um novo shell e faça login no PostgreSQL usando a outra função, Linuxhint1, que criamos anteriormente usando o seguinte comando:
$ psql -u linuxhint1 -d Postgres
O -d Especifica que a função é usar o banco de dados do Postgres.
Tente ler o conteúdo da tabela que criamos usando o Selecione comando.
# Selecione * FROM NOMES;
Ele retorna a permissão negada Erro impedindo o usuário de acessar a tabela.
Nesse caso, precisamos conceder os privilégios da função para selecionar/visualizar dados da tabela fornecida usando a seguinte sintaxe:
# Grant privilEGE_NAME na tabela_name para role_name;
Para conceder os privilégios, use a sessão do Postgres.
Uma vez concedido, tente executar novamente o comando anterior.
É isso. Você conseguiu conceder o privilégio selecionado ao usuário específico.
Concedendo todos os privilégios ao esquema a um usuário
Até agora, conseguimos conceder apenas um privilégio sobre o esquema a um usuário. Bem, isso não é suficiente. O usuário não pode modificar o esquema, a menos que você conceda todos os privilégios, como inserção e atualização.
Existem diferentes maneiras de conseguir isso. Primeiro, vamos conceda ao usuário todos os privilégios a uma determinada tabela Usando a seguinte sintaxe:
# Conceda tudo na tabela_name para role_name;
O usuário pode interagir e modificar a tabela específica. No entanto, eles não podem trabalhar com outras mesas no esquema.
Para conceda a todos os privilégios em todas as mesas em um esquema específico, Use a seguinte sintaxe:
# Conceda tudo em todas as tabelas no esquema esquema_name para role_name;
Por fim, você pode conceder privilégios específicos, como inserir ou selecionar todas as tabelas no esquema para um determinado papel.
# Grant privilEGE_NAME em todas as tabelas no esquema esquema_name para role_name;
A função pode selecionar dados em todas as tabelas no esquema especificado. É assim que você define quais privilégios conceder no esquema a diferentes usuários.
Conclusão
PostgreSQL é um poderoso DBMS. Possui recursos diferentes, incluindo permitir que o administrador conceda vários privilégios aos usuários. Conceder todos os privilégios ao esquema aos usuários significa permitir que o usuário modifique e interaja com todas as tabelas no esquema especificado. Vimos como aplicar isso e outras maneiras de conceder privilégios ao esquema a funções usando a declaração de concessão no PostgreSQL.