PostgreSQL concede a todos os privilégios do esquema ao usuário

PostgreSQL concede a todos os privilégios do esquema ao usuário

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.