DB2-Passwörter mit Sonderzeichen

7


Unsere DB2-Authentifizierung ist in Active Directory integriert, sodass die zulässigen Kennwörter von der Richtlinie gesteuert werden. Wir haben einige Benutzer, die keine Verbindung zur Datenbank über den Befehlseditor oder den Abfragebildschirm im Control Center herstellen können. Der Fehler ist folgender:

SQL0104N Ein unerwartetes Token "!" wurde nach "" gefunden.  
Zu den erwarteten Token gehören möglicherweise: "NEU".
 SQLSTATE: 42601
 SQL-Code: -104

Sie können eine Verbindung über den Befehlszeilenprozessor herstellen, sofern sie das Kennwort nicht in der connect-Anweisung enthalten.
Das Problem betrifft alle Benutzer mit einigen Sonderzeichen in ihren Passwörtern. Wir haben versucht, die connect-Anweisung ohne das Kennwort im Befehlseditor auszugeben, aber es hat nicht funktioniert.
Die genaue Version der Datenbank lautet DB2 / AIX64 9.5.4.
Gibt es eine Möglichkeit für sie, diese Tools zu verwenden, außer dass sie ihre Kennwörter ändern müssen?
Vielen Dank

Guillermo Vasconcelos
quelle
Es kann auch erwähnenswert sein, dass IBM die in DB2 enthaltenen GUI-Tools (Control Center und andere) ablehnt. Sie empfehlen jetzt, entweder die Befehlszeile zu verwenden oder IBM Data Studio herunterzuladen, das kostenlos heruntergeladen werden kann , wenn Sie GUI-Tools verwenden möchten.
Chris Aldrich

Antworten:

5

Dies ist ein langjähriger Fehler in den GUI-Tools.

Solange Ihr Kennwort jedoch kein doppeltes Anführungszeichen (") enthält, können Sie dies umgehen, indem Sie das zu verbindende Kennwort in doppelte Anführungszeichen setzen.

connect to sample user test using test!
--> SQL0104N

connect to sample user test using "test!"
--> connection succeeded.

Diese Methode funktioniert auch, wenn Sie von den GUI-Tools aufgefordert werden, ein Kennwort mit einem Dialogfeld einzugeben.

Wenn Sie Passwörter mit doppelten Anführungszeichen haben, haben Sie möglicherweise kein Glück. Sie können ein Ticket mit IBM DB2-Unterstützung öffnen und / oder einfach das Kennwort ändern.

Ian Bjorhovde
quelle
Vielen Dank! das hat funktioniert. Wenn jemand ein Passwort mit "drin" hat, wird er es ändern, aber ich erwarte nicht, dass es zu oft vorkommt.
Guillermo Vasconcelos
3

Fügen Sie Ihr Passwort mit Sonderzeichen in das Paar Singlequote, Doublequote ein. Beispiel: Passwd = '"test!"'

Dies wird sicher funktionieren.

Naresh
quelle
0

Schreiben Sie ein Skript mit #!/bin/kshals erste Zeile. Entfliehen Sie dem Passwort mit einer Kombination aus einfachen Anführungszeichen, doppelten Anführungszeichen und einer Erklärung in der ersten Zeile.

#!/bin/ksh

db2 connect to &db2name& user &username& using "'&password&'"
Ramit Girdhar
quelle