postgresql 只允许对函数和过程的权限,而不允许对它们使用的基础表的权限

n3h0vuf2  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(156)

我正在使用postgres,并制作了许多函数和过程来查看和操作数据。我想知道是否有一种方法可以授予用户访问这些函数和过程的权限,而不直接授予他们访问由这些函数和过程操作的基础表的权限。
我已经研究了安全定义器,但在意识到它不能使用事务支持后,我一直在尝试寻找其他方法来实现这一点。
如果不可能只给予对功能和程序的访问,如果有的话,还有哪些其他途径?我的应用程序的所有数据库通信都将通过我的后端,它只会调用我的函数和过程,但我只是想在数据库级别强制执行,而不仅仅是应用程序级别,以获得额外的安全性。

nx7onnlm

nx7onnlm1#

是的,它是非常容易和简单的提供访问功能和程序,而不给访问实际数据.为此,您需要做的就是创建USER ROLES
示例如下:

创建角色my_role LOGIN;

  • 权限:

GRANT EXECUTE ON PROCEDURE/FUNCTION myProcedureOrFunction()TO my_role;

相关问题