Não existe um meio de tirar o grant de "PUBLIC" para um único usuário.
Pense nele como a configuração padrão, independente de o usuário ter grant ou não para tal objeto.
Por exemplo, se é dado um GRANT de SELECT na tabela XYZ para o PUBLIC, todos os usuários, sem exceção, terão acesso de select, mesmo que eles não tenham o grant especifico de select.
Para resolver uma situação desta, na versão 7.2 , é preciso remover o grant do PUBLIC e então dar a permissão de SELECT *apenas* para os usuários que devem ter acesso a tabela. E aqueles usuários que você não quer que acesse a tabela, basta não dar a permissão de SELECT.
Porém , dependendo da quantidade de objetos e usuários, você vai ter um certo trabalho para administrar isto.
RE: usuário
Olá João,
Não existe um meio de tirar o grant de "PUBLIC" para um único usuário.
Pense nele como a configuração padrão, independente de o usuário ter grant ou não para tal objeto.
Por exemplo, se é dado um GRANT de SELECT na tabela XYZ para o PUBLIC, todos os usuários, sem exceção, terão acesso de select, mesmo que eles não tenham o grant especifico de select.
Para resolver uma situação desta, na versão 7.2 , é preciso remover o grant do PUBLIC e então dar a permissão de SELECT *apenas* para os usuários que devem ter acesso a tabela. E aqueles usuários que você não quer que acesse a tabela, basta não dar a permissão de SELECT.
Porém , dependendo da quantidade de objetos e usuários, você vai ter um certo trabalho para administrar isto.