This form of the GRANT statement grants privileges on a user-defined type.
This statement can be embedded in an application program or issued interactively. It is an executable statement that can be dynamically prepared.
The privileges held by the authorization ID of the statement must include at least one of the following:
If WITH GRANT OPTION is specified, the privileges held by the authorization ID of the statement must include at least one of the following:
.-PRIVILEGES-.
>>-GRANT----+-ALL--+------------+--+---------------------------->
| .-,----------. |
| V | |
'----+-ALTER-+--+------'
'-USAGE-'
.-,------------.
V |
>----ON--+---------------+---TYPE-------type-name---+----------->
| (1) |
'-DISTINCT------'
.-,-----------------------.
V |
>----TO----+-authorization-name-+--+--+-------------------+----><
'-PUBLIC-------------' '-WITH GRANT OPTION-'
Notes:
If you do not use ALL, you must use one or more of the keywords listed below. Each keyword grants the privilege described.
The set consists of those users who do not have privately granted privileges on the user-defined type. For example, if ALTER has been granted to PUBLIC, and USAGE is then granted to HERNANDEZ, this private grant prevents HERNANDEZ from having the ALTER privilege.
If WITH GRANT OPTION is omitted, the specified authorization-names cannot grant privileges on the user-defined types specified in the ON clause to another user unless they have received that authority from some other source (for example, from a grant of the system authority *OBJMGT).
GRANT and REVOKE statements assign and remove AS/400 system authorities for
SQL objects. The following table describes the AS/400 system
authorities that correspond to the SQL privileges:
Table 30. Privileges Granted to or Revoked from User-Defined Types
| SQL Privilege | Corresponding AS/400 System Authorities when Granting to or Revoking from a User-Defined Type |
|---|---|
| ALL (Grant or revoke of ALL grants or revokes only those privileges the authorization ID of the statement has) |
*OBJALTER *OBJOPR *EXECUTE *OBJMGT (Revoke only) |
| ALTER | *OBJALTER |
| USAGE |
*EXECUTE *OBJOPR |
| WITH GRANT OPTION | *OBJMGT |
Grant the USAGE privilege on distinct type SHOE_SIZE to user JONES. This GRANT statement does not give JONES the privilege to execute the cast functions that are associated with the distinct type SHOE_SIZE.
GRANT USAGE ON DISTINCT TYPE SHOE_SIZE TO JONES