powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Из-за чего возникло <insufficient privilege>
5 сообщений из 5, страница 1 из 1
Из-за чего возникло <insufficient privilege>
    #39840297
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Есть приложение на Java, которое обращается к БД PGSQL 9.6 на линуксе.
через sudo создал БД и пользователя и дал привелегии на БД

Код: sql
1.
2.
3.
4.
sudo -u postgres psql -c 'create database mydatabase;'
sudo -u postgres bash -c "psql -c \"CREATE USER dbuser WITH PASSWORD '123456789';\""
sudo -u postgres bash -c "psql -c \"grant all privileges on database mydatabase to dbuser;\""
sudo psql -h 127.0.0.1 -U dbuser -d mydatabase -a -f /opt/createdb.sql



Все работало до определенного момента. В какой-то момент в htop у БД появился статус PARSE WAITING .

Селектнул заблокированные запросы, там показало, что запросы к одной таблице имеют статус <insufficient privilege>.

По быстрому загуглил и как решение было найдено GRANT SELECT ON contacts TO PUBLIC; .
После этого запросы прошли, но не понял, почему так случилось. До этого же все работало нормально.

В PostgreSQLне особо силен, поэтому прошу кто сможет разъяснить или дать направление в котором нужно рыть.

Спасибо!
...
Рейтинг: 0 / 0
Из-за чего возникло <insufficient privilege>
    #39840302
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь как бы получается, что в какой-то момент времени, схеме PUBLIC вдруг понадобился доступ к моей таблице contacts, из схемы dbuser
...
Рейтинг: 0 / 0
Из-за чего возникло <insufficient privilege>
    #39840358
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipСелектнул заблокированные запросы, там показало, что запросы к одной таблице имеют статус <insufficient privilege>.
Поясните что именно и как вы "селектнули"
Потому что:
1) <insufficient privilege> в pg_stat_activity (и некоторых других stats collector местах) - обозначает что это у вас нет прав посмотреть, чем тот процесс занимается. А не то, что у того процесса нет прав на что-то
2) если у запроса нет прав на какое-либо действие - он не будет ждать пока эти права появятся, а вернёт ошибку сразу и завершится (и заодно отметит транзакцию как пригодную только к rollback)

и 3 - PARSE WAITING не имеет отношения к правам доступа (см п.2), а бывает в частности если какой-то процесс взял эксклюзивную блокировку и все последующие запросы его ждут - вот эти процессы и будут в waiting. Большинство форм alter table например.
...
Рейтинг: 0 / 0
Из-за чего возникло <insufficient privilege>
    #39840402
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij , спасибо за Ваш ответ!

Просмотрел логи, оказалось, что застопорилось из-за того, что запросы попали в тот момент, когда на сервере выполнялась команда VACUUM FULL ANALIZE . Теперь бум думать, когда запускать с FULL, чтобы место на диске не заканчивалось.
...
Рейтинг: 0 / 0
Из-за чего возникло <insufficient privilege>
    #39840512
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,

вообще не использовать full на регулярной основе.
Проверять и тюнить автовакуум. Если что-то распухает сверх меры - pg_repack или pgcompacttable
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Из-за чего возникло <insufficient privilege>
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]