Вы можете отозвать любой доступ к таблице user
у всех пользователей, кроме владельца, и создать представление с таким кодом:
create view auth_view as
select id, username, sha1(password) as sha1pass
from user;
Тогда ваш запрос будет выглядеть так:
select count(id)
from auth_view
where username = '%s'
and sha1pass = sha1('%s')
Другой возможностью может быть использование системы правил PostgreSQL для перезаписи или избежания определенных типов запросов в таблице user
.Но я не уверен, что вы пытаетесь сделать здесь.