在IBM DB2 v.9窗口上,当有人通过Server \ Administrator用户连接到数据库时 DB2数据库会自动接受并授予该用户所有权限吗? 但是,在某些情况下,服务器的环境管理员不需要查看数据库中的每个数据。那么如何防止管理员使用连接到数据库?
答案 0 :(得分:1)
在9.5及更早版本中,这是不可能的,因为运行实例的帐户是SYSADM。管理员还可以重置至少本地帐户密码并获取对它们的访问权限,从而使实例所有者帐户无法更改。
但是在9.7及更高版本中,实例所有者将无法再访问数据。一种选择是升级到9.7。此外,您可以为应用程序使用的连接设置AD帐户。本地管理员无法更改为这些凭据。
但是,管理员最终还是可以访问(通常是未加密的)数据库文件。您可以主要改进安全性的管理方面。
答案 1 :(得分:0)
默认情况下,DB2数据库是使用授予public的CONNECT
权限创建的。如果要限制某些用户进行连接,则需要执行
GRANT CONNECT ON DATABASE TO <user1>, <user2>, ...
然后从PUBLIC
撤销CONNECT权限REVOKE CONNECT ON DATABASE FROM PUBLIC
答案 2 :(得分:0)
嗯......很多时候我尝试使用此命令撤销,但是当我通过管理员帐户连接到数据库时,DB2将自动再次授予管理员权限。
我会再次尝试确保。
答案 3 :(得分:0)
我不认为在正常情况下这是可能的,因为管理员在sysadm
组。
我能想到的选项(但尚未尝试过)包括:
答案 4 :(得分:0)
在Windows上,数据库管理器配置参数SYSADM_GROUP
控制在实例级别具有SYSADM
权限的用户。当SYSADM_GROUP
为空(在Windows上为默认值)时,DB2默认使用本地计算机上的Administrators组。
要解决此问题,您可以在Windows中创建新组,然后修改SYSADM_GROUP
的值以使用此新组。确保运行DB2 Service的ID属于此新组。进行此更改后,Administrators组的成员将不再具有SYSADM
权限。
正如Kevin Beck所说,你也可能想要考虑限制数据库的CONNECT
权限,因为默认情况下,PUBLIC会授予CONNECT
权限。