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.