如果用户对函数中引用的对象没有权限,那么当他们尝试执行该函数时,具有该函数的 EXECUTE 权限的用户将收到错误。
我创建了一个函数 my_function。在该函数中,我从表 my_table 中执行 select/insert/update/delete 操作。然后,我将 EXECUTE 权限授予另一个用户“user1”。
但是,当用户 1 尝试执行该功能时,它会失败并显示消息“拒绝对表 my_table 的权限”。
我不想授予用户 user1 直接访问表 my_table 的权限。这正是创建函数 my_function 的全部目的,因为我想控制 user1 可以查看/修改哪些数据。
这是 Postgres 的限制(缺陷)吗?对我来说,这是一个非常严重的安全/隐私问题。有办法解决这个问题吗?还是我们必须忍受它?
我的 Postgres 版本是 15.x