当我使用通用帐户连接 DB2 数据库时,遇到了使用 DB2 工具的问题,该帐户生成的密码以 Bang 符号“!”结尾。我无法更改密码,因为其他进程已使用该密码。
我知道该用户是有效的,并且我可以使用它的凭据连接到数据库,但不是来自所有 db2 工具。
使用控制中心时没问题。使用命令编辑器 (GUI) 或命令窗口时,我收到以下错误消息:
connect to WAREHOUS user administrator using !
SQL0104N An unexpected token "!" was found following "<identifier>".
Expected tokens may include: "NEW". SQLSTATE=42601
假设我的密码是:pass@!我正在尝试使用
c:\>db2 connect to sample user administrator using "pass@!"
或者
c:\>db2 connect to sample user administrator using pass@!
在这两种情况下我都收到了相同的错误消息。
我可以改变连接方式但这对我来说没有用,例如:
c:\>db2 connect to sample user administrator
Enter current password for administrator:
但我无法轻松地从批处理文件中使用它。
我想知道如何从命令编辑器进行连接,以便从图形工具中使用该用户。
顺便说一句,我知道控制中心已被弃用。
答案1
对于命令行,你可以尝试单引号
c:\>db2 connect to sample user administrator using 'pass@!'
GUI 工具无解决方案
答案2
我不被允许更改密码...
我怀疑这是确切地你最终会做什么。
...因为它已被其他进程使用。
绝对有必须更改此密码的过程。
如果账户/密码受到损害(并且存储的地方越多,发生这种情况的可能性就越大),那么你就会有没有选择而是要改变它。这个过程可能很痛苦,但如果不存在,您可能会面临巨大的(且代价高昂的)数据泄露。
我猜你刚开始使用 DB2,否则你早就遇到这个问题了。
如果你要“到处”使用相同的帐户/密码,那么你就不得不遵守密码复杂度规则的“最低公分母”——这是你能做到的最好的事情到处。显然 Bang 标志不符合这一点,所以你不能使用它们。
有没有选择使用不同的是否要为该特定流程更改帐户/密码,而其他部分保持不变?如果不是,则返回选项 1 - 在所有地方都进行更改。