我添加了以下 SQL
脚本,由我的项目中的 Gradle
运行:
CREATE OR REPLACE TRIGGER my_trigger
BEFORE update of ID ON person
FOR each row
BEGIN
:new.updated := systimestamp;
END;;
当 DBDeploy任务尝试运行此脚本,但收到错误消息:由于用户没有所需的权限
,因此无法运行该脚本?
如何在我的 Gradle
脚本中修复此问题?
最佳答案
在具有“强大”权限的数据库 session 中(最强大的是SYSDBA
),您应该向该数据库用户(您正在连接的用户)授予“创建触发器”的权限来自 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...
还可以授予其他几种权限来允许创建触发器(例如将资源授予...
),但上面的权限是最适合您的目的的限制性权限(为了不授予额外不必要的权利)。
关于java - Gradle:由于没有正确的权限而无法运行 SQL 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40909312/