发生错误:"Using GRANT OPTION on procedures not allowed" 创建 PSQL 变量时

Error occurs: "Using GRANT OPTION on procedures not allowed" when creating a PSQL variable

我们正在为 interbase-firebird 和 Firebird 3.0.5 使用 SQL 管理器。 我们正在创建一个程序并且运行良好。

然而,从我们将 psql 变量添加到过程的那一刻起,我们得到以下错误。当我们删除变量时,可以再次执行该过程。在已添加的变量下方(也请参见下图)。

  Declare variable ikke integer;

错误消息说:

USING GRANT OPTION ON PROCEDURE NOT ALLOWED.

详细的错误信息说:

GRANT REFERENCES ON "Text" TO PROCEDURE GETTEXTCONTAINING WITH GRANT OPTION;

所以似乎通过使用 psql 变量添加了从 table "TEXT" 到存储过程的引用,这显然是不允许的。

所以,这听起来像是一个许可的事情。但是,当我们授予程序权限时,参考区域会变灰,因此我们无法授予权限,就像我们在执行级别所做的那样。

如果我们查看 table 文本上的权限级别,则会给出参考权限,但是无法添加 "a permission with grant"(手形图标)。

我不知道问题是什么以及如何解决,有什么想法吗?

2012 年 2 月 27 日更新 如果我将相同的代码添加到执行块中,效果很好。有什么想法吗?

execute block
RETURNS(ID BIGINT, TEXTNAME VARCHAR(1000))
AS
DECLARE ikke VARCHAR(50);
BEGIN
 Id = 0;
 Textname = '';
 ikke = '%a%';
  FOR
 SELECT "ID", "enUS" FROM "Text" WHERE "enUS" like :ikke INTO :Id, :Textname
 DO
 BEGIN
    SUSPEND;
 END
END;

下面是一些额外的错误打印屏幕。

所以不清楚为什么当我添加一个 psql 变量时 "privilege" 被自动授予,但是当我在编译弹出窗口中取消选中授予的权限然后执行 rollback/recompile 它有效.