我在项目中添加了以下SQL
脚本,以便Gradle
运行:
CREATE OR REPLACE TRIGGER my_trigger
BEFORE update of ID ON person
FOR each row
BEGIN
:new.updated := systimestamp;
END;;
当DBDeploy任务尝试运行此脚本时,由于用户没有所需的permissions
,我收到无法运行脚本的错误?
如何在我的Gradle
脚本中修复此问题?
答案 0 :(得分:1)
来自具有强大"的数据库会话。权限(最强大的是SYSDBA
),你应该授予权限#34;创建一个触发器"到该数据库用户(您从gradle连接的用户),如下所示:
-- if the user used in gradle is the same user that owns the schema, like it seems
grant CREATE TRIGGER to <the user>;
-- if the user used in gradle is a different user, you must grant him a more powerful right:
grant CREATE ANY TRIGGER;
然后从gradle发出命令(请记住,如果他们是两个不同的用户,则必须指定用户所在的模式)
CREATE OR REPLACE TRIGGER the_schema.my_trigger...
可以授予许多其他权限以允许创建触发器(例如GRANT resource to...
),但上述权限是最具限制性的权限(适用于您的目的)(为了不授予其他不必要的权限) )。