Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 配置数据库 » 管理用户 ID、特权和权限 » 管理用户权限和特权概述

 

授予针对过程的权限

具有 DBA 特权的用户或过程的所有者可以授予执行存储过程的权限。可针对过程授予的唯一权限是 EXECUTE 权限。

授予执行过程权限的方法与授予针对表和视图的权限的方法相似。但是,GRANT 语句的 WITH GRANT OPTION 子句不适用于授予针对过程的权限。

您可以使用 Sybase Central 或 Interactive SQL 来设置权限。

♦  授予针对过程的权限 (Sybase Central):
  1. 以具有 DBA 特权的用户身份连接到数据库。

  2. 单击 [过程和函数]。

  3. 右击某个过程,然后选择 [属性]。

  4. 单击 [权限] 选项卡。

  5. 配置针对过程的权限:

    • 单击 [授权]。

    • 双击某一用户或组。

    • 要允许或撤消执行过程的权限,请选择某个用户或组并单击 [执行] 列。可以执行该过程的用户或组将以复选标记表示。

    • 要撤消所有权限,请选择某个用户或组并单击 [撤消]。

  6. 单击 [应用]。

提示

也可以在 [用户属性] 或 [组属性] 窗口中指派权限。使用 [过程属性] 窗口可向多个用户或组指派权限。使用 [用户属性] 或 [组属性] 窗口可向多个过程指派权限。

♦  授予针对过程的权限 (SQL):
  1. 作为具有 DBA 特权的用户或作为过程的所有者连接到数据库。

  2. 执行 GRANT EXECUTE ON 语句。

示例

您可以授予 M_Haneef 执行名为 my_procedure 的过程的权限,方法如下:

  1. 作为具有 DBA 特权的用户或作为 my_procedure 过程的所有者连接到数据库。

  2. 执行以下 SQL 语句:

    GRANT EXECUTE
    ON my_procedure
    TO M_Haneef;
过程的执行权限

使用过程所有者的权限执行过程。 当过程所有者拥有针对表的 UPDATE 权限时,更新表中信息的任何过程才能成功执行。

只要过程所有者拥有适当权限,当拥有执行该过程的权限的用户调用该过程时,无论该用户是否拥有针对基表的权限,该过程均可成功执行。您可以使用过程来允许用户对表执行明确定义的活动,而不必拥有针对表的任何常规权限。

另请参见