首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确保只连接到DB2数据库的方法

确保只连接到DB2数据库的方法
EN

Database Administration用户
提问于 2014-05-19 10:18:14
回答 1查看 2.5K关注 0票数 1

让我们假设一个安全性设计不好的数据库,假设每个人都有一个拥有DBADM或SYSADM权限的用户访问数据库,而且每个人都只能使用用户名(即db2inst1)。

我希望执行一项管理任务,例如模式迁移,并且我需要成为唯一连接到数据库的任务。

如何确定我将是唯一访问数据库的人?

  • Quiesce数据库是不够的,因为其他用户使用高权限用户进行访问。
  • 如果选择限制访问,Quiesce实例不允许激活数据库。
  • DB2COMM可以从db2set中删除,但是本地的cron最终可能被解雇。
  • MAXAPPLS到1。然而,我应该是一个,如果不是强制应用程序应该再次发布。
  • 如果其他人使用该用户,则在独占模式下的连接无法工作。
  • 将工作负载配置更改为只允许我?(来自我的IP)

然而,对于一个简单的任务来说,这些更改太多了。

我看到了类似的讨论,但是我没有看到一些让我信服的东西:http://database.ittoolbox.com/groups/technical-functional/db2-l/luw-how-to-prevent-connections-to-a-single-database-within-an-instance-3189860

你的主张是什么?那样的话你会怎么做?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-05-19 18:21:46

最简单的方法是取消编目,然后用不同的名称重新编目数据库(在数据库服务器上以实例所有者的身份执行此操作):

  1. db2 uncatalog database SAMPLE
  2. db2 catalog database SAMPLE as XXX on <path> ...进行维修活动..。
  3. db2 uncatalog database XXX
  4. db2 catalog database SAMPLE on <path>

任何试图使用connect to sample在数据库服务器上本地连接的用户都会得到以下错误:

代码语言:javascript
复制
SQL1013N  The database alias name or database name "SAMPLE" could not be found.  SQLSTATE=42705

但是,如果远程连接也无法连接,则必须重新启动DB2实例。这是必需的,因为DB2 TCP连接管理器(db2tcpcm)将缓存数据库目录条目,因此在重新启动EDU之前,它仍将“了解”数据库。重新启动DB2实例后,远程连接将获得错误:

代码语言:javascript
复制
SQL30061N  The database alias or database name "SAMPLE            " was not 
found at the remote node.  SQLSTATE=08004

必须重新启动实例并不是最好的解决方案,但它可以工作。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/65373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档