发生错误:"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 它有效.
我们正在为 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" 到存储过程的引用,这显然是不允许的。
所以,这听起来像是一个许可的事情。但是,当我们授予程序权限时,参考区域会变灰,因此我们无法授予权限,就像我们在执行级别所做的那样。
我不知道问题是什么以及如何解决,有什么想法吗?
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 它有效.