mariadb 视图中CURRENT_ROLE的用法

llew8vvj  于 2023-02-08  发布在  其他
关注(0)|答案(1)|浏览(109)

我正在使用MariaDB,我想归档的是根据当前设置的角色限制遗留用户表的输出。(普通用户只能看到自己的数据,团队领导可以看到团队成员的数据,管理层可以看到所有数据)。

SELECT * FROM USERS WHERE user = session_user() or current_role() = 'CEO'

这作为一个语句可以很好地工作,但在视图定义中就不像USER()与SESSION_USER()的问题那样了。
有什么办法可以解决这个问题吗?我也愿意接受完全不同的方法。谢谢。
使用information_schema.enabled_roles也不起作用。
基本问题可通过以下步骤重现:创建“CEO”角色;设置角色“CEO”;
选择当前角色();- 〉“首席执行官”
创建视图测试角色作为SELECT当前角色();
从测试角色中选择 *;

  • 〉无效
    由具有完全授予权限的用户执行;
exdqitrt

exdqitrt1#

看起来你用的是很老的版本,这个问题是很久以前的fixed

CREATE SQL SECURITY INVOKER VIEW test_view AS
  SELECT USER(), CURRENT_ROLE()

工作正常。

相关问题