【发布时间】:2022-01-27 02:59:48
【问题描述】:
我想将触发器、函数和程序授予角色。我有代码用过程来做,但是用触发器和函数它不起作用。
create role Level1;
grant execute any trigger to Level1;
grant execute any procedure to Level1;
【问题讨论】:
标签: sql oracle oracle-sqldeveloper
我想将触发器、函数和程序授予角色。我有代码用过程来做,但是用触发器和函数它不起作用。
create role Level1;
grant execute any trigger to Level1;
grant execute any procedure to Level1;
【问题讨论】:
标签: sql oracle oracle-sqldeveloper
用户拥有表、函数和过程。该用户创建了一个角色,并希望将各种对象的执行权限授予该角色。
对于触发器,这没有任何意义 - 它们会在创建它们的表上执行某些操作时触发。因此,您将授予对表的权限,而不是对触发器的权限
对于函数和过程,您将授予对确切函数和过程的执行权限(而不是在单个语句中全部),例如
grant execute on p_insert_student to level1;
grant execute on f_average_marks to level1;
您发布的(grant execute any procedure)是系统权限;这有点危险;您确定要让level1 绝对执行数据库中的任何过程吗?
此外,函数没有单独的授权;在这种情况下,它们被视为过程,因此execute any procedure 也会影响函数。
【讨论】: