Eu estava olhando information_schema.role_table_grants
quando vi public
na grantee
coluna, aí já verifiquei information_schema.enabled_roles
mas isso role_name
não existe.
=> Quem ou qual é o public
papel?
Eu estava olhando information_schema.role_table_grants
quando vi public
na grantee
coluna, aí já verifiquei information_schema.enabled_roles
mas isso role_name
não existe.
=> Quem ou qual é o public
papel?
Embora isso seja verdade, não é o quadro completo. Public também atua como uma função implícita à qual outras funções pertencem e que tem suas próprias permissões nem sempre refletidas e relatadas que são herdadas.
Por padrão, ele dá permissão de criação no esquema público. quando você não remove isso, todas as outras etapas corretas para criar um usuário somente leitura resultam em que o usuário também seja capaz de criar novos objetos no esquema público e, devido à propriedade, colocar dados neles. Para evitar isso
Da mesma forma, também dá permissão no nível do banco de dados, para remover o uso
Bom artigo aqui: https://wiki.postgresql.org/images/d/d1/Managing_rights_in_postgresql.pdf
Direto do manual: