Granting permissions on procedures

A user with DBA authority or the owner of the procedure may grant permission to execute stored procedures. The EXECUTE permission is the only permission that may be granted on a procedure.

The method for granting permissions to execute a procedure is similar to that for granting permissions on tables and views. However, the WITH GRANT OPTION clause of the GRANT statement does not apply to the granting of permissions on procedures.

You can use either Sybase Central or Interactive SQL to set permissions.

To grant permissions on procedures (Sybase Central)

  1. Connect to the database as a user with DBA authority.

  2. Click Procedures & Functions.

  3. Right-click a procedure and then choose Properties.

  4. Click the Permissions tab.

  5. Configure the permissions for the procedure:

    • Click Grant.
    • Double-click a user or group.
    • To allow or revoke permission to execute a procedure, select a user or group and click the Execute column. A checkmark indicates the user or group can execute the procedure.
    • To revoke all permissions, select a user or group and click Revoke.
  6. Click Apply.

Tip

You can also assign permissions from the User Properties or Group Properties window. Use the Procedure Properties window to assign permissions to multiple users or groups. Use the User Properties or Group Properties window to assign permissions to multiple procedures.

To grant permissions on procedures (SQL)

  1. Connect to the database as a user with DBA authority or as the owner of the procedure.

  2. Execute a GRANT EXECUTE ON statement.

Example

You can grant M_Haneef permission to execute a procedure named my_procedure, as follows:

  1. Connect to the database as a user with DBA authority or as owner of my_procedure procedure.
  2. Execute the SQL statement:
    GRANT EXECUTE
    ON my_procedure
    TO M_Haneef;
Execution permissions of procedures

Procedures execute with the permissions of their owner. Any procedure that updates information in a table will execute successfully only if the owner of the procedure has UPDATE permissions on the table.

As long as the procedure owner has the proper permissions, the procedure executes successfully when called by any user assigned permission to execute it, whether or not they have permissions on the underlying table. You can use procedures to allow users to perform well-defined activities on a table, without having any general permissions on the table.

See also