3

在 IBM DB2 v.9 windows 上,当有人通过 Server\Administrator 用户连接到数据库时,DB2 数据库会自动接受并授予该用户的所有权限吗?但是,在某些情况下,服务器的环境管理员不需要查看数据库中的所有数据。那么如何防止管理员使用连接数据库呢?

4

5 回答 5

1

在 9.5 和更早版本上,这是不可能的,因为运行您的实例的帐户是 SYSADM。此外,管理员至少可以重置本地帐户密码并获得对它们的访问权限,从而使更改实例所有者帐户毫无用处。

但是,在 9.7 及更高版本上,实例所有者将无法再访问数据。一种选择是升级到 9.7。此外,您可以为应用程序使用的连接设置 AD 帐户。本地管理员不一定能够更改为这些凭据。

尽管如此,管理员最终还是可以访问(通常是未加密的)数据库文件。您可以主要改进安全性的管理方面。

于 2011-02-04T19:06:09.470 回答
0

我认为在正常情况下不可能仅仅因为管理员在sysadm组中。

我能想到(但没有尝试过)的选项包括:

  • 将 sysadm 组设置为其他内容(“db2 update dbm cfg using sysadm_group blah”)。执行此操作时检查文档以获取警告和陷阱,因为我确定有一些。
  • 停止使用操作系统身份验证。使用不同的安全插件(仅限 8.2 及更高版本)。这会将身份验证和组移动到新位置(例如 LDAP 服务器)。然后,您只是不要将管理员添加到新位置,尤其是不要再次将管理员添加到 sysadm 组。
于 2008-11-13T14:36:38.650 回答
0

By default, DB2 databases are created with CONNECT authority granted to public. If you want to restrict some users from connecting, you need to do

GRANT CONNECT ON DATABASE TO <user1>, <user2>, ...

Then revoke the CONNECT authority from PUBLIC

REVOKE CONNECT ON DATABASE FROM PUBLIC
于 2008-11-08T04:17:31.560 回答
0

嗯...很多次我尝试用这个命令撤销,但是当我通过管理员帐户连接到数据库时,DB2 将再次自动授予管理员权限。

我会再试一次以确保。

于 2008-11-10T13:17:54.743 回答
0

在 Windows 上,数据库管理器配置参数SYSADM_GROUP控制谁拥有SYSADM实例级别的权限。如果SYSADM_GROUP为空(Windows 上的默认设置),则 DB2 将默认使用本地机器上的 Administrators 组。

要解决此问题,您可以在 Windows 中创建一个新组,然后修改 的值SYSADM_GROUP以使用此新组。确保运行 DB2 服务的 ID 属于这个新组。进行此更改后,Administrators 组的成员将不再具有SYSADM权限。

正如 Kevin Beck 所说,您可能还想查看CONNECT对数据库的权限限制,因为默认情况下该CONNECT权限被授予 PUBLIC。

于 2012-06-16T23:02:32.580 回答