Require the issuer of CREATE TYPE to own the functions mentioned in the
Tom Lane <tgl@sss.pgh.pa.us>
Require the issuer of CREATE TYPE to own the functions mentioned in the type definition. Because use of a type's I/O conversion functions isn't access-checked, CREATE TYPE amounts to granting public execute permissions on the functions, and so allowing it to anybody means that someone could theoretically gain access to a function he's not supposed to be able to execute. The parameter-type restrictions already enforced by CREATE TYPE make it fairly unlikely that this oversight is meaningful in practice, but still it seems like a good idea to plug the hole going forward. Also, document the implicit grant just in case anybody gets the idea of building I/O functions that might need security restrictions.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/ref/create_type.sgml | modified | +12 −1 |
| src/backend/commands/typecmds.c | modified | +25 −1 |