Правильный способ сделать это с разрешениями. Измените владельца таблицы на другого пользователя и предоставьте пользователю SELECT только рабочую базу данных.
Я бы сказал, что правильное место для такого рода вещей, вероятно, база данных. Таким образом, если они когда-либо потребуются, вы можете изменить их в базе данных, и вам не нужно будет повторно развертывать ваше приложение (при условии, что оно заметит изменение).
Вы не спрашивали об этом, но ваша формулировка напомнила об этом, так что я все равно скажу: вам никогда не нужно явно LOCK
таблица с PostgreSQL. Если вы думаете, что это то, что вам нужно сделать, вы должны убедиться, что то, о чем вы беспокоитесь, действительно может произойти в рамках MVCC, и что транзакции не будут делать правильные вещи для вас.