GRANT (Sequence Privileges)

This form of the GRANT statement grants privileges on a sequence.

Invocation

This statement can be embedded in an application program or issued interactively. It is an executable statement that can be dynamically prepared.

Authorization

The privileges held by the authorization ID of the statement must include at least one of the following:

  • For each sequence identified in the statement:
    • Every privilege specified in the statement
    • The system authority of *OBJMGT on the sequence
    • The system authority *EXECUTE on the library containing the sequence
  • Administrative authority

If WITH GRANT OPTION is specified, the privileges held by the authorization ID of the statement must include at least one of the following:

  • Ownership of the sequence
  • Administrative authority

Syntax

Read syntax diagramSkip visual syntax diagram
                 .-PRIVILEGES-.     
>>-GRANT--+-ALL--+------------+-+------------------------------->
          | .-,---------.       |   
          | V           |       |   
          '---+-ALTER-+-+-------'   
              '-USAGE-'             

                 .-,-------------.   
                 V               |   
>--ON -SEQUENCE----sequence-name-+------------------------------>

       .-,----------------------.                          
       V                        |                          
>--TO----+-authorization-name-+-+--+-------------------+-------><
         '-PUBLIC-------------'    '-WITH GRANT OPTION-'   

Description

ALL or ALL PRIVILEGES
Grants one or more privileges. The privileges granted are all those grantable privileges that the authorization ID of the statement has on the specified sequences. Note that granting ALL PRIVILEGES on a sequence is not the same as granting the system authority of *ALL.

If you do not use ALL, you must use one or more of the keywords listed below. Each keyword grants the privilege described.

ALTER
Grants the privilege to use the ALTER SEQUENCE, COMMENT, and LABEL statements on a sequence.
USAGE
Grants the privilege to use the sequence in NEXT VALUE or PREVIOUS VALUE expressions.
ON SEQUENCE sequence-name
Identifies the sequences on which the privilege is granted. The sequence-name must identify a sequence that exists at the current server.
TO
Indicates to whom the privileges are granted.
authorization-name,…
Lists one or more authorization IDs.
PUBLIC
Grants the privileges to a set of users (authorization IDs). For more information, see Authorization, privileges and object ownership.
WITH GRANT OPTION
Allows the specified authorization-names to grant privileges on the sequences specified in the ON clause to other users.

If WITH GRANT OPTION is omitted, the specified authorization-names cannot grant the USAGE privilege to others unless they have received that authority from some other source (for example, from a grant of the system authority *OBJMGT).

Notes

Corresponding System Authorities: GRANT and REVOKE statements assign and remove system authorities for SQL objects. The following table describes the system authorities that correspond to the SQL privileges:

Table 1. Privileges Granted to or Revoked from Sequences
SQL Privilege Corresponding System Authorities when Granting to or Revoking from a Sequence
ALL (Grant or revoke of ALL grants or revokes only those privileges the authorization ID of the statement has)

*OBJALTER
*OBJOPR
*EXECUTE
*READ
*ADD
*DLT
*UPD
*OBJMGT (Revoke only)

ALTER *OBJALTER
USAGE

*OBJOPR
*EXECUTE
*READ
*ADD
*DLT
*UPD

WITH GRANT OPTION *OBJMGT

Corresponding System Authorities When Checking Privileges to a Sequence: The following table describes the system authorities that correspond to the SQL privileges when checking privileges to a sequence. The left column lists the SQL privilege. The right column lists the equivalent system authorities.

Table 2. Corresponding System Authorities When Checking Privileges to a Sequence
SQL Privilege Corresponding System Authorities
ALTER *OBJALTER
USAGE

*OBJOPR and *EXECUTE and
*READ and *ADD and
*DLT and *UPD

Example

Grant any user the USAGE privilege on a sequence called ORG_SEQ.

GRANT USAGE
  ON SEQUENCE ORG_SEQ
  TO PUBLIC