Privilégios PostrgreSQL concedendo

3

Dado que sou usuário root X, tenho usuários A e B.

Como eu concedo o usuário A para permitir que ele conceda ao usuário B a execução de um conjunto específico de funções?

Por exemplo, temos o usuário A que possui o banco de dados_1. O usuário A cria algumas funções armazenadas nesse banco de dados (por exemplo, function_a e function_b ). O usuário A deve poder conceder a execução dessas funções ao usuário B e somente a ele.

    
por ulmen 25.05.2012 / 14:39

1 resposta

2

Por padrão, o proprietário de um objeto tem ALL PRIVILEGES nesse objeto, mas não me lembro especificamente se esses privilégios se estendem a permitir que um usuário normal (não super) atinja GRANT permissões nesse objeto para outros usuários.

Em qualquer caso, você deve ser capaz de conceder essa capacidade a um usuário anexando a cláusula WITH GRANT OPTION a uma instrução GRANT . (Eu o encaminho para os documentos para maiores detalhes.)

Por exemplo, em seu cenário hipotético, como superusuário X , você poderia fazer algo assim:

GRANT ALL PRIVILEGES  ON DATABASE database_1  TO A  WITH GRANT OPTION;

O usuário A teria então o poder de GRANT de permissões em objetos em database_1 para outros usuários. Continuando com o exemplo hipotético, o usuário A poderia dar permissões específicas ao usuário B , assim:

GRANT EXECUTE  ON FUNCTION function_a(), function_b()  TO B;
    
por 25.05.2012 / 18:30

Tags