0

我阅读了 GT.M 安全文档,发现 GT.M 不包含特定的安全解决方案,它取决于操作系统系统用户角色

现在我希望每个用户在数据库上都有特定的角色,我该怎么做

例子 :

  • 用户 'manager' 可以对全局 "Account","Salary" 执行 SET ,KILL 命令

  • 用户 'employee' 只能对全局“Salary”执行 ZWRITE 命令

假设“Account”和“Salary”全局变量映射在同一个数据库文件中

谢谢,

4

2 回答 2

5

GT.M 本身并没有实现安全层,而是使用操作系统实现的访问控制(用户/组/世界权限和分层安全性,例如 SELinux)。我知道某些应用程序已经使用传统的用户/组/世界控件完成了您想要的操作,但它确实需要应用程序架构是可以接受的。其他应用程序在应用程序层实现访问控制。

@DAiMor 上面的引用已经过时了。手册中的当前报价是:

确保数据库文件所有权(用户和组)、UNIX 用户和组 ID 以及 UNIX 级别的权限与预期的访问权限相匹配。如果需要比用户和组 ID 和权限提供的更细粒度的访问控制,请考虑在适当和可用的情况下使用分层在操作系统之上的安全产品。

一般来说,我们不再推荐访问控制列表。我注意到手册中稍后提到它,我们应该删除它。ACL 适用于文件,但不适用于共享内存等资源。

于 2015-09-09T18:35:56.840 回答
0

在这里,我看到,您正在谈论读写访问权限,因此,您必须更改对 DB 文件的访问权限,您可以添加应该有权写入具有此类访问权限的 UNIX 组的用户。
引自GT.M安全哲学

确保数据库文件所有权(用户和组)、UNIX 用户和组 ID 以及 UNIX 级别的权限与预期的访问权限相匹配。如果需要比用户和组 ID 和权限提供的更细粒度的访问控制,请考虑在可用的情况下使用访问控制列表 (ACL)。

于 2015-09-08T07:14:09.147 回答