MonetDB - 如何创建一个新的用户/角色来完全访问整个数据库/模式?



有没有办法创建一个可以访问所有现有表的新管理员用户/角色。 如果其他用户创建新表,则管理员用户也应该能够拥有新表的权限。

现在,唯一的方法是明确给出表的列表:

mclient -f "csv" -s "select name from sys.tables where system=false" | xargs -I '{}' mclient -s 'set schema "'$MONETDB_SCHEMA'"; grant select on "{}" to "pm-usecase"'

但是,如果另一个用户创建了一个新表,那么我们需要再次授予对新表的访问权限。

我们想知道同样的事情,但唯一的选择是制作一个角色:

CREATE ROLE test_role;

创建具有角色授权的架构:

CREATE SCHEMA new_schema AUTHORIZATION test_role;

使用架构将角色授予用户:

GRANT test_role TO test_user;

现在,如果用户test_user在 sql 会话中使用set role test_role命令,他将能够访问其他用户创建的表,而无需授予权限。

目前,似乎没有一揽子选项可以使用户能够在所有架构中执行此操作。解决方案可以是使用一个特定的表角色授权创建所有表。

有一个名为sysadmin的内置角色:

grant sysadmin to <user>

但是,您仍需要在连接上设置角色才能激活权限。

相关内容

  • 没有找到相关文章

最新更新