É possível, mas seu problema é que sua consulta UPDATE contém uma cláusula WHERE que precisa consultar os campos pelo menos internamente. Portanto, pretende-se que você precise da permissão SELECT aqui.
Caso contrário, pode-se tentar usar técnicas de força bruta para obter o conteúdo real da tabela usando uma UPDATE-Query e verificando se ela afetou as linhas.
Exemplo:UPDATE clientes SET some_irrellevant_field=1 WHERE user ='jimmy' AND sexual_orientation ='2'Assim que você tiver uma contagem de linhas afetadas> 0, você terá a informação. Então, possivelmente seria muito perigoso permitir isso.
Mas você pode conceder permissões explicitamente para colunas únicas. Digamos que você queira atualizar o hash de senha de um usuário com um determinado id, você dá permissão select na coluna id para o usuário do banco de dados e permissão de atualização para a coluna hash.
Caixa de diálogo de permissão específica da tabela PHPMyAdmin (desculpe, algumas partes das capturas de tela estão em alemão):
Então isso deve funcionar bem:UPDATE users SET hash='0123456789abcdef' WHERE id =1234
Como alternativa, se a permissão de nível de coluna não estiver disponível em seu DBMS ou mecanismo de armazenamento, você ainda poderá usar uma tabela ou banco de dados separado e juntá-lo quando for necessário.