Book Image

PostgreSQL Server Programming

Book Image

PostgreSQL Server Programming

Overview of this book

Table of Contents (21 chapters)
PostgreSQL Server Programming Second Edition
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Are untrusted languages inferior to trusted ones?


No, on the contrary, these languages are untrusted in the same way that a sharp knife is untrusted and should be kept out of the reach of very small children, unless there is adult supervision. They have extra powers that ordinary SQL, or even the trusted languages (such as PL/pgSQL) and trusted variants of the same language (PL/Perl versus PL/PerlU) don't have.

You can use the untrusted languages to directly read and write on the server's disks, and you can use it to open sockets and make Internet queries to the outside world. You can even send arbitrary signals to any process running on the database host. Generally, you can do anything the native language of the PL can do.

However, you probably should not trust arbitrary database users to have the right to define functions in these languages. Always think twice before giving all privileges on an untrusted language to a user or group, by using the *u languages for important functions.