Privileges necessary for using CREATE FUNCTION

You must hold the Resource privilege or the DBA privilege on a database to create a function within that database.

Before you can create a function, you must also hold the Usage privilege on the programming language in which the function is written. The GRANT USAGE ON LANGUAGE statement can specify the SPL, C, or Java™ language when it grants a language-level privilege to a user or to a role. For more information, see Language-Level Privileges.

By default, Usage privilege on SPL is granted to PUBLIC.

To register functions in the C or Java external programming languages, you must also hold the built-in EXTEND role, unless the IFX_EXTEND_ROLE configuration parameter is set to 0 or to Off.