添加一个新的 firebird-db 用户来访问特定的表?

问题描述 投票:0回答:1

我需要创建一个新的 firebird-db 用户,它只能访问 4 个特定的表。有办法做到吗?

http://www.destructor.de/firebird/gsec.htm在这方面并没有真正的帮助。

roles firebird2.5
1个回答
1
投票

您链接的第三方gsec文档不提供有关授予表权限的信息,因为gsec仅用于管理安全数据库中的用户。在 Firebird 中,用户的权限是使用

GRANT
(和
REVOKE
)语句在各个数据库中管理的(甚至可以向(尚)不存在的用户授予权限)。请注意,Firebird 3 已弃用 gsec,从 Firebird 2.5 开始,建议使用 SQL 用户管理语句而不是 gsec。

您需要创建用户,然后授予用户对您想要的表的权限。请参阅 Firebird 2.5 语言参考中的安全章节。

经过身份验证的常规用户对任何数据库对象没有任何权限 直到明确授予该个人用户或 绑定为 PUBLIC 用户的所有用户。

具体:

  1. 创建用户:

    create user <username> password '<password>';
    

    另见

    CREATE USER
    ;要创建用户,您需要是 SYSDBA,或者您需要具有安全数据库中的 admin 角色以及当前数据库中的 RDB$ADMIN 角色,并在连接时指定 RDB$ADMIN 角色来登录。

  2. 授予用户必要的权限。例如授予 SELECT 权限:

    grant select on table <tablename> to user <username>;
    

    允许选择、插入、更新和删除:

    grant select, insert, update, delete on table <tablename> to user <username>;
    

    另见

    GRANT
    ;要授予对象权限,您必须是 SYSDBA(该对象的所有者)、当前数据库中的 RDB$ADMIN,或者已被授予带有
    WITH GRANT OPTION
    的权限。

当您需要向多个用户授予同一组权限时,最好先向角色授予权限,然后再将该角色授予用户。然而,在 Firebird 3 及更早版本中,要获得授予角色的权限,用户需要在连接时显式指定该角色(Firebird 4 引入了自动应用的default角色)。

© www.soinside.com 2019 - 2024. All rights reserved.