让我们假设一个安全性设计不好的数据库,假设每个人都有一个拥有DBADM或SYSADM权限的用户访问数据库,而且每个人都只能使用用户名(即db2inst1)。
我希望执行一项管理任务,例如模式迁移,并且我需要成为唯一连接到数据库的任务。
如何确定我将是唯一访问数据库的人?
然而,对于一个简单的任务来说,这些更改太多了。
我看到了类似的讨论,但是我没有看到一些让我信服的东西:http://database.ittoolbox.com/groups/technical-functional/db2-l/luw-how-to-prevent-connections-to-a-single-database-within-an-instance-3189860
你的主张是什么?那样的话你会怎么做?
发布于 2014-05-19 18:21:46
最简单的方法是取消编目,然后用不同的名称重新编目数据库(在数据库服务器上以实例所有者的身份执行此操作):
db2 uncatalog database SAMPLEdb2 catalog database SAMPLE as XXX on <path> ...进行维修活动..。db2 uncatalog database XXXdb2 catalog database SAMPLE on <path>任何试图使用connect to sample在数据库服务器上本地连接的用户都会得到以下错误:
SQL1013N The database alias name or database name "SAMPLE" could not be found. SQLSTATE=42705但是,如果远程连接也无法连接,则必须重新启动DB2实例。这是必需的,因为DB2 TCP连接管理器(db2tcpcm)将缓存数据库目录条目,因此在重新启动EDU之前,它仍将“了解”数据库。重新启动DB2实例后,远程连接将获得错误:
SQL30061N The database alias or database name "SAMPLE " was not
found at the remote node. SQLSTATE=08004必须重新启动实例并不是最好的解决方案,但它可以工作。
https://dba.stackexchange.com/questions/65373
复制相似问题