在 Firebird 中更改其他用户的表
当我尝试在 Firebird 中更改不同所有者的表时,我收到此错误:
unsuccessful metadata update
MODIFY RDB$RELATION_FIELDS failed
no permission for control access to TABLE TAGS
我已经向该用户授予了所有权限,还有 REFERENCES 权限,但我仍然收到此错误。
有人知道如何解决这个问题吗?
我使用 Firebird 1.5
谢谢
When I try to alter a table from a different owner in Firebird I got this error:
unsuccessful metadata update
MODIFY RDB$RELATION_FIELDS failed
no permission for control access to TABLE TAGS
I had already granted ALL privileges to this user, also REFERENCES privileges, but I still getting this error.
Does anybody knows how to solve this?
I use Firebird 1.5
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ALTER TABLE
状态:换句话说,如果您不是表的所有者,则需要以 SYSDBA 身份登录,或者需要以 root 或管理员身份登录数据库计算机。据我所知,没有其他方法可以以不同的用户身份更改表。
在 Firebird 2.5 中,还有 RDB$ADMIN 角色,它允许被授予此角色的用户具有与 SYSDBA 相同的权限。
您可以
GRANT
(REFERENCES
除外)的权限仅适用于 DML,不适用于 DDL 操作。Firebird 3 引入了 元数据权限,它允许您针对特定对象类型向特定用户或角色授予这些权限。
例如:
将允许用户 Joe 更改当前数据库中的任何表。
The Firebird 2.5 Language Reference section on
ALTER TABLE
states:In other words if you are not the owner of the table, you need to either login as
SYSDBA
, or you need to be logged in as root or Adminstrator on the machine with the database. There is - as far as I am aware - no other way to alter a table as a different user.In Firebird 2.5 there is also the
RDB$ADMIN
role which allows a user which is granted this role to act with the same rights as SYSDBA.The rights you can
GRANT
(except forREFERENCES
) are only for DML, not for DDL operations.Firebird 3 introduced metadata privileges, which allows you to grant these permissions to a specific user or role for specific object types.
For example:
Will allow the user Joe to alter any tables in the current database.