命令的语法错误:“GRANT EXECUTE ON USERNAME.PKG.PROCEDURE TO OTHERUSER;”

dar*_*ser 3 oracle

我想授予用户 B 执行权限,以便它可以执行属于用户 A 的打包过程。

procedure name = PKGNAME.PROCEDURENAME
user = USERA
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下命令:

GRANT EXECUTE ON USERA.PKGNAME.PROCEDURENAME TO USERB;
Run Code Online (Sandbox Code Playgroud)

但它给了我错误:

第 1 行错误:
ORA-00905:缺少关键字

有语法问题吗?我使用了这个链接:将 存储过程的权限授予 Oracle 的另一个用户

dav*_*100 5

您不能对包内的过程授予权限,要么授予整个包的权限,要么将过程移到包外,这样它就成为一个独立的程序,然后授予权限

所以要么

GRANT EXECUTE ON USERA.PKGNAME TO USERB;
Run Code Online (Sandbox Code Playgroud)

或者

GRANT EXECUTE ON USERA.PROCEDURENAME TO USERB;
Run Code Online (Sandbox Code Playgroud)