Under privileges for named row types

For named row types, you can grant or revoke the Under privilege, which controls whether users can assign a named row type as the supertype of another named row type in an inheritance hierarchy. The Under privilege is granted to PUBLIC automatically when a named row type is created (except in ANSI-compliant databases). In an ANSI-compliant database, the Under privilege on a named row type is granted to the owner of the type.

To restrict certain users' ability to define a named row type as a supertype in an inheritance hierarchy, you must first revoke the Under privilege for PUBLIC and then specify the names of the users to whom you want to grant the Under privilege. For example, to specify that only a limited group of users can use the named row type person_t as a supertype in an inheritance hierarchy, you might execute the following statements:
REVOKE UNDER ON person_t
   FROM PUBLIC;

GRANT UNDER ON person_t
   TO howie, jhana, alison

For information about how to use the UNDER clause to create named row types in an inheritance hierarchy, see Type inheritance.