我正在使用postgres,并制作了许多函数和过程来查看和操作数据。我想知道是否有一种方法可以授予用户访问这些函数和过程的权限,而不直接授予他们访问由这些函数和过程操作的基础表的权限。
我已经研究了安全定义器,但在意识到它不能使用事务支持后,我一直在尝试寻找其他方法来实现这一点。
如果不可能只给予对功能和程序的访问,如果有的话,还有哪些其他途径?我的应用程序的所有数据库通信都将通过我的后端,它只会调用我的函数和过程,但我只是想在数据库级别强制执行,而不仅仅是应用程序级别,以获得额外的安全性。
我正在使用postgres,并制作了许多函数和过程来查看和操作数据。我想知道是否有一种方法可以授予用户访问这些函数和过程的权限,而不直接授予他们访问由这些函数和过程操作的基础表的权限。
我已经研究了安全定义器,但在意识到它不能使用事务支持后,我一直在尝试寻找其他方法来实现这一点。
如果不可能只给予对功能和程序的访问,如果有的话,还有哪些其他途径?我的应用程序的所有数据库通信都将通过我的后端,它只会调用我的函数和过程,但我只是想在数据库级别强制执行,而不仅仅是应用程序级别,以获得额外的安全性。
1条答案
按热度按时间nx7onnlm1#
是的,它是非常容易和简单的提供访问功能和程序,而不给访问实际数据.为此,您需要做的就是创建USER ROLES。
示例如下:
创建角色my_role LOGIN;
GRANT EXECUTE ON PROCEDURE/FUNCTION myProcedureOrFunction()TO my_role;