プロが教えるわが家の防犯対策術!

DB2初心者です。

 AIX5.2+DB2 8.1環境を使用しております。DB2へのアクセスはこのUnixシステムからのみと想定してください(すなわち、DB2へのログインクライアントもサーバーも同じ
AIX上で動いているという想定です)。

この環境のもと、DB2のインスタンスユーザであるdb2inst1からDB2上のsampleへログインしようと試みます。

 > db2 connect to sample user db2inst1 using xxxxx(password)

すると以下のメッセージが返されます。

SQL30082N Attempt to establish connection failed with security reason "24"
("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001

 次に、以下のコマンドを実行します。

db2 connect to sample user db2inst1 using xxxxx new yyyyy confirm yyyyy

SQL30083N Attempt to change password for user id "db2inst1" failed with
security reason "" (""). SQLSTATE=08001

 となり、エラーでログインできません。しかし、以下の
 コマンドでアクセスすると、

  
> db2 connect to sample

DB2へ正しくアクセス可能です。

 db2 connect to sample user xxx using xxx形式で
 アクセスするにはどうすればよいのでしょうか。
 ちなみに、DB2の設定は、インストール直後の状態です。 dbm cfgのAuthenticationはサーバーにしております。これをClientにしても結果は同じでした。また、sampleには特にGrant connect/loadも実行しておりません。

 以上よろしく御願い申し上げます。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

AIXもDB2も詳しくないのではずしてそうですが。



UNIXにログインするときのユーザは誰ですか?
そのログインユーザにDB2コマンドを実行する権限が
ないのかもしれません。
    • good
    • 0

db2 "?" SQL30082N



と実行してみてください。そうすると、エラーメッセージの情報を見る事ができます。その中の理由コード24番を見ると、

> 24 (USERNAME AND/OR PASSWORD INVALID)
> 指定されたユーザー名または指定されたパスワード、
> あるいはその両方が無効です。

と書いてあります。ですので、パスワードが間違っていないかどうかが問題ですね。
念のために確認なのですが、打ち間違いという事は無いですよね?

それ以外に考えられる理由は\マークなどの特殊記号がパスワードに入っている場合などにシェルによって文字が別の意味に解釈される可能性があるという事です。
一度ためしに

db2 "connect to sample user db2inst1 using xxx"

とダブルコーテーションで括って入力してみてはどうでしょうか?

> dbm cfgのAuthenticationはサーバーにしております

SERVERのままで良いですよ。

> sampleには特にGrant connect/loadも実行しておりません

これもdb2inst1でログインするのであれば特にGRANTの必要はないですね。

この回答への補足

ありがとうございます。二重引用符をつけてもダメです。同じエラーが返ってきます。Windows版のDB2(C/SともにWindows上で走行)では、db2 connect ~は問題なく動作するのに、なぜAIX版DB2はダメなんでしょうか。DBは本当に分かりにくいDBですね。

補足日時:2005/01/11 08:51
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QDB2のTimestamp型

DB2のTimestamp型のカラムに
'Current-Timestamp'以外で
設定可能なデフォルト値というのは
あるのでしょうか?

Aベストアンサー

以下のURLが参考になると思います。

参考URL:http://www-06.ibm.com/jp/software/data/developer/library/techdoc/daytime.html

QDB2のコマンドラインexportで複雑なselectの指定は可能?

オラクルだとspoolでselect文の出力結果をCSV形式等にして取得できるのですが、DB2で同じ事が可能かと調べてます。db2コマンドのexportを使えばできそうかと思うのですが、複雑なselect文の時にコマンドラインに全部書かなければならないのか、他に手段があるのか、悩んでいます。

Aベストアンサー

export コマンドを使ったCVS形式でのファイル出力    →できます
コマンドラインではなく外部ファイルを使用したSQLの実行 →できます

具体的なやり方
以下のファイル(hoge.txt)を作成する。
----------------------------------------------------------
connect to DB名 user DBユーザー名 using パスワード;
export to ファイル名 of del SQL文(ex select * from hoge) ;
connect reset;
----------------------------------------------------------
db2 -tvf hoge.txt

でできます。
windowsだと、db2コマンドウィンドウで、
UNIX、Linuxなら、db2インスタンスユーザー等、
db2コマンドが使える状態になっていないとできません。

参考URL:http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0008303.htm

export コマンドを使ったCVS形式でのファイル出力    →できます
コマンドラインではなく外部ファイルを使用したSQLの実行 →できます

具体的なやり方
以下のファイル(hoge.txt)を作成する。
----------------------------------------------------------
connect to DB名 user DBユーザー名 using パスワード;
export to ファイル名 of del SQL文(ex select * from hoge) ;
connect reset;
----------------------------------------------------------
db2 -tvf hoge.txt

でできます。
window...続きを読む

QDB2で SQL1032N start database managerエラー

はじめまして。初めて書き込みさせていただきます。
WebSphereでDB2をデータベースとして行っているのですけど、今日起動してDB2にconnectしようと思ったら

COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL1032N start database manager コマンドが発行されていません。 SQLSTATE=57019

というエラーメッセージが出てきてconnectできなくなってしまいました。どなたか改善方法知っている方いらっしゃいましたら教えてください。よろしくお願いします。

Aベストアンサー

こんにちは。業務でDB2を使用しているものです。(でもまだ素人)

表示されたエラーは、インスタンスが開始されていない、という内容です。DB2は、インスタンスという単位を作成し、その中にデータベースを作成しています。そのため、インスタンスが開始されていない場合、その中にあるデータベースにCONNECTすることができなくなります。インスタンスを開始すれば、無事にデータベースに接続できるはずです。

DB2サーバーのOSは何でしょうか?UNIXであれば、OSのコマンド・プロンプト上から、Windowsであれば、DB2のコマンド・プロンプト(コマンド・ウィンドウ)上から、db2startというコマンドを実行することで、DB2を開始することができます。

もし、それ以外のOSを使用されているようであれば、手元に資料がないのですが、調べることも可能だと思いますので、補足にてお教えください。また、これでも解決しない場合も、補足にてご連絡くだされば、もう少しお答えできるかもしれません。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Q秒を時分秒に変換する

EXCELで秒を時分秒に変換することは可能でしょうか?
19827635秒を何時間何分何秒に変換するもの

Aベストアンサー

A1に19827635秒が入っているとして
別のセルに
=TEXT(A1/24/60/60,"[h]時間mm分ss秒")
とすれば出きそうです。
5507時間40分35秒

QSQL:TIMESTAMPの期間検索を指定するには?

教えてください。

SQL文で日付期間の検索をしたいです。

フィールド名:tran_dataの値が、
2004/09/01 ~ 2004/09/03 のデータを検索したい。

データはTIMESTAMPで取得されています。
テーブル名:dat_history

【失敗例】
select * from web.dat_history where tran_date = '2004-08-18'

【エラーメッセージ】
日付値のストリング表記が間違っています。

Aベストアンサー

DBMSはなんでしょう?

とりあえずOracleの場合。

select * from web.dat_history where to_char(tran_date, 'yyyy/mm/dd') between '2004/09/01' and '2004/09/03';

ですね。

QDB2でのcsvファイルのインポート

今、IBM DB2 for Windowsを扱っているのですが、
csvファイルのインポートが良くわかりません。

csv形式で保存されているファイルがあるのですが、
そのファイルを元にテーブルを作りたいんです。

SQL以外で、何か簡単にできる方法は無いのでしょうか?
また、やり方を解説しているページがあれば教えてください。

お願いします。

Aベストアンサー

Windows版は詳しくないのですが、
多分DB2 コマンド・エディタから、
import from ファイル名 of del insert into テーブル名
の様にコマンドを打てば良い筈です。
(AIX版と同じなら)

DB2のリファレンスマニュアルの、importのところを
読めば手掛かりがつかめるのではないでしょうか?

参考URLはDB2のリファレンスです。

参考URL:http://www-6.ibm.com/jp/software/data/developer/library/manual/db2online/index.htm

QDB2のSQL(日付)について

文字列で8桁の日付(例:20041208)を持っている項目の条件に本日日付以上という条件をつけたいのですが、
(例:where NEN >= 本日日付の文字列8桁 )
※NEN:20041208
SQLでシステム日付を文字列8桁にする方法はありますか?
ご教授お願いしますm(_ _)m

Aベストアンサー

(前にも回答したと思うのですが、入っていないようなので再度入力します)

大小の比較をしたいのでしたら、DATE型を文字列にしても駄目で、文字列をDATE型に変換する必要があります。
8文字で表された日付をDATE型に変換する関数はDB2には用意されていないので、自分で用意する必要があります。

CREATE FUNCTION STR2DATE (dateString VARCHAR(8))

RETURNS DATE

SPECIFIC STR2DATE

LANGUAGE SQL

DETERMINISTIC

CONTAINS SQL

BEGIN ATOMIC

DECLARE ret VARCHAR(10);



IF (LENGTH(dateString) != 8) THEN

RETURN DATE('1970-01-01');

END IF;



set ret = LEFT(dateString,4) || '-' || SUBSTR(dateString,5,2) || '-' || RIGHT(dateString,2);



RETURN ret;

END@

という感じでSTR2DATE関数を用意しておいて、
SELECT ... WHERE STR2DATE(NEN) >= CURRENT DATE
とやればうまくいくのではないでしょうか。

(前にも回答したと思うのですが、入っていないようなので再度入力します)

大小の比較をしたいのでしたら、DATE型を文字列にしても駄目で、文字列をDATE型に変換する必要があります。
8文字で表された日付をDATE型に変換する関数はDB2には用意されていないので、自分で用意する必要があります。

CREATE FUNCTION STR2DATE (dateString VARCHAR(8))

RETURNS DATE

SPECIFIC STR2DATE

LANGUAGE SQL

DETERMINISTIC

CONTAINS SQL

BEGIN ATOMIC

DECLARE ret VARCHAR(10);



IF (LENGTH(...続きを読む

QSELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

Aベストアンサー

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404


人気Q&Aランキング