具有 DBA 特权的用户或过程的所有者可以授予执行存储过程的权限。可针对过程授予的唯一权限是 EXECUTE 权限。
授予执行过程权限的方法与授予针对表和视图的权限的方法相似。但是,GRANT 语句的 WITH GRANT OPTION 子句不适用于授予针对过程的权限。
您可以使用 Sybase Central 或 Interactive SQL 来设置权限。
以具有 DBA 特权的用户身份连接到数据库。
单击 [过程和函数]。
右击某个过程,然后选择 [属性]。
单击 [权限] 选项卡。
配置针对过程的权限:
单击 [授权]。
双击某一用户或组。
要允许或撤消执行过程的权限,请选择某个用户或组并单击 [执行] 列。可以执行该过程的用户或组将以复选标记表示。
要撤消所有权限,请选择某个用户或组并单击 [撤消]。
单击 [应用]。
也可以在 [用户属性] 或 [组属性] 窗口中指派权限。使用 [过程属性] 窗口可向多个用户或组指派权限。使用 [用户属性] 或 [组属性] 窗口可向多个过程指派权限。
作为具有 DBA 特权的用户或作为过程的所有者连接到数据库。
执行 GRANT EXECUTE ON 语句。
您可以授予 M_Haneef 执行名为 my_procedure 的过程的权限,方法如下:
作为具有 DBA 特权的用户或作为 my_procedure 过程的所有者连接到数据库。
执行以下 SQL 语句:
GRANT EXECUTE ON my_procedure TO M_Haneef; |
使用过程所有者的权限执行过程。仅 当过程所有者拥有针对表的 UPDATE 权限时,更新表中信息的任何过程才能成功执行。
只要过程所有者拥有适当权限,当拥有执行该过程的权限的用户调用该过程时,无论该用户是否拥有针对基表的权限,该过程均可成功执行。您可以使用过程来允许用户对表执行明确定义的活动,而不必拥有针对表的任何常规权限。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |