gpt4 book ai didi

Firebird 用户对单个数据库拥有所有访问权限,但无法创建新数据库且无法访问其他数据库

转载 作者:行者123 更新时间:2023-12-04 10:48:55 24 4
gpt4 key购买 nike

我有一台可以管理多个 Firebird 数据库的服务器。我的用户可以对单个数据库的所有对象拥有完全访问权限,但不允许他们创建新数据库,也不能访问同一服务器中的其他数据库。我如何配置这个场景?

最佳答案

从 Firebird 3 开始,用户需要有一个 explicit privilege to create databases ( Database DDL Privileges )。因此,只要您不向用户授予该权限,他们就无法创建数据库(除非他们拥有并应用 RDB$ADMIN 角色)。
让用户访问数据库中的所有内容更难。您需要单独定义每个数据库对象的访问权限。这样做的首选方法是向角色授予必要的访问权限,并将该角色授予用户。见 SQL Privileges详情。
在 Firebird 3 及更早版本中,用户不会承担角色的权限,除非他们在连接时明确指定该角色。 Firebird 4 将引入默认角色,这些角色将始终被应用。或许可以使用 Firebird 3 privilege mapping也定义一个默认角色,但我不确定这是否有效。
Firebird 没有提供禁止用户连接数据库的方法:几乎所有权限都存储在每个数据库中,因此用户必须在服务器知道他们拥有哪些权限之前进行连接。如果你想禁止用户连接,你需要创建一个自定义 ON CONNECT trigger to 为不应被允许连接的用户引发异常。

关于Firebird 用户对单个数据库拥有所有访问权限,但无法创建新数据库且无法访问其他数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59573436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com