微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

撤销对表的 SELECT 权限

如何解决撤销对表的 SELECT 权限

我有以下问题(这对我来说似乎很绝望)。 我想要两个角色:

  1. 拥有 MYTABLE 的角色 ma​​in_admin
  2. 角色 child_admin 只能向 MYTABLE 添加列但不能从该表中选择(出于隐私原因)。

我的计划是:

  1. 将角色 child_admin 作为子角色添加ma​​in_admin(因此,ma​​in_adminchild_admin 的组角色)。
  2. 撤销 child_admin
  3. 的 SELECT 权限

但是 rovokation 不起作用,因为 child_adminma​​in_admin 继承了 SELECT 权限。但是我必须将 child_admin 包含到 ma​​in_admin 中,因为这是让 child_admin 能够更改 MYTABLE 的唯一方法(对吗?)所以,它看起来像一个恶性循环。有什么办法可以解决我的问题吗?

解决方法

您可以让 main_admin 定义一个带有 SECURITY DEFINER 的函数,该函数在验证其输入后执行请求的 ALTER TABLE。然后将此函数的 EXECUTE 授予 child_admin(不应授予其 main_admin 角色)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。