Це стосується об'єктної моделі Python - завжди є спосіб отримати посилання на об'єкти, які можуть бути небезпечними. Перегляньте документацію модуля rexec та розділ із обмеженим виконанням документів, щоб отримати інформацію про проблеми, а також:
Обмеження не мають нічого спільного з PostgreSQL його самості, вони притаманні реалізації інтерпретатора CPython або, можливо, навіть самій мові Python.
Деякі інші мови перевіряли час виконання, наприклад Perl, Java, JavaScript та Lua. Більшість із них стикаються з низкою питань безпеки, оскільки такі обмежені середовища виконання дуже важко захистити від усіх можливих подій у в'язниці.
Насправді ніщо не заважає PostgreSQL додавати напівнавірений інтерпретатор Python, оскільки rexec є "досить хорошим" для багатьох цілей. PostgreSQL, як правило, не захоплюється лише - здебільшого, добротним, досить добрим - можливо, хоча. Це, мабуть, буде прийнято лише в тому випадку, якщо він позначений лише для суперпользователя, але ви завжди зможете надати доступ до нього певним користувачам. Це було б краще, ніж ненадійний Python.
Особисто я думаю, що PL / V8 або подібне - це майбутнє тут, і я хотів би, щоб він рухався до того, щоб підтримувати його в ядрі.
Я також невиразно досліджував ідею надійного Mono, яке може завантажувати "безпечні" збірки, написані на C #, VB.NET, IronPython чи іншому, але не змогли багато зробити з цієї теми.