执行包含动态SQL Sybase的存储过程

时间:2012-05-29 20:46:11

标签: sql permissions execute dynamic-sql sybase-ase

为什么我不能执行包含非SP所有者用户的动态SQL的存储过程?

我可以使用SP所有者用户成功执行它,但其他用户则不能。

尽管如此,我已经授予了该SP的权限。

当SP没有动态SQL时,一切正常。

我正在使用Sybase ASE 15.0.3

2 个答案:

答案 0 :(得分:2)

我知道了!

如果SP中有动态SQL,则需要将执行模式更改为“动态”

sp_procxmode sp_name, "dynamic"

以便允许非SP所有者用户成功执行该SP。

答案 1 :(得分:0)

要执行存储过程,用户需要能够访问可能在其上的所有表,视图等,无论是在普通代码中还是在动态代码!