InterBaseを使いこなすスレ
■ このスレッドは過去ログ倉庫に格納されています
0001ななしっす。
NGNGコンパクトで一通りの機能がそろっているデータベースサーバ。
マルチプラットフォーム、UNICODE、レプリケーションをこなし、
クライアントへのイベント通知(InterBaseの特許)といった特異機能もある
が、情報が少ないのでココで盛り上げていきましょう。
0232デフォルトの名無しさん
NGNGそうなのよ。
運用鯖でバリバリにユーザー管理してもファイルコピーして
インストール状態のIB/FBに持っていくとsysdbaでデータ見られてしまう罠。
機能的にはあってもよさそうなんだけど、どっかのベンダとかが出してないのかな〜
せっかくのオプソなんで時間&スキルあればそーいうExtensionとか
実装させてみたいと思うんだけど・・・
つかFireBirdってなんでコンパイラVCなのよ?
0233デフォルトの名無しさん
NGNG元のInterBaseがVCで書かれていたから。
InterBaseがBorlandの製品になる前にMS-Cで書かれてたからかな?
FireBirdもVCに依存する部分をこれから無くしていくんじゃなかったけ。
0234デフォルトの名無しさん
NGNGAccess みたいにローカルで運用するもんじゃないから。
> インストール状態のIB/FBに持っていくとsysdbaでデータ見られてしまう罠。
見られたくないDBを何で持っていく?
0235デフォルトの名無しさん
NGNG他のRDBMSだと程度の権限がないとよそへデータを持っていったり(エクスポートしたりとか)
することができないけど、IBだとファイルコピーされたら終わってしまうというのがなんとも・・・
>見られたくないDBを何で持っていく?
今考えてるのは組み込み用途みたいなローカル限定の環境で使えないかなというところで考えとります。
せっかくファイルベースのRDBなんだからファイル単位のセキュリティがほしいなということで。
「用途/目的が違うから」の一言で済ませてしまうにはおしいな・・・
0236デフォルトの名無しさん
NGNGいいって話じゃないのか?
0237デフォルトの名無しさん
NGNG>IBだとファイルコピーされたら終わってしまうというのがなんとも・・・
これは運用でカバーするしかないね。
Win2KやUnix系ならOSの機能使って対処すればいいと思うよ。
パーミッション設定して他人から見えないようにするとかして。
>>236
SYSDBA 削除したらまずいだろ。管理できなくなるよ。たぶん。
パスワード変えようが意味ない。
ユーザ情報はサーバにある isc4.gdb で管理しているみたいだからね。
231の言うようにDBファイル自身にユーザ情報が入れれれば確かに
いいような気がする。ただそうなると、管理者でさえそのDBにアクセス
できなくなってしまうから、まずいのかな?
(一応管理者はすべての権限があるという前提で言うと)
0238デフォルトの名無しさん
NGNGクライアントの接続文字列にDBへのパスが含まれるから
そこから所在がバレそうだね。
0239デフォルトの名無しさん
NGNGみんなが何を心配しているのか見当がつかない。
>>235
なんで見られるとマズイ?
データが外に漏洩したのとは違うし、見られてまずいことなど何もないと思うけど。
>>238
所在がばれると何か問題なの?
所在がばれた程度でデータ盗まれるような管理してることの方が余程問題でしょ?
0240デフォルトの名無しさん
NGNGDBパスはばれても、要はGDBファイルはコピーできないようにしておけば問題ないよね?
>>239
>なんで見られるとマズイ?
何らかのミスがあって、GDB ファイルが外部に持ち出されてしまいました。
ってときに、GDB ファイル単位にパスワードとか設定できるのであれば、
例え外に持ち出されてもパスワードまで漏れなければ中身を見られることは
まずないよね。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGファイルが読めりゃ、パスワードなんか分かんなくたって、いくらでもデータを読む方法あるでしょ。
0243デフォルトの名無しさん
NGNGデータ自体を暗号化すればいいんでは。
パスワードを暗号キーとするとか。
0244デフォルトの名無しさん
NGNG某のところにもそんなの書いてあったな。
プロトコル/データを暗号化してしまえばいいんだろうが
どっかにミドルウェアないかな(w
0245デフォルトの名無しさん
NGNGhttp://www.delphi32.com/vcl/4808/
0246デフォルトの名無しさん
NGNG(BackDoorセキュリティホールは痛かったけどな。)
http://www.zdnet.co.jp/news/0206/12/ne00_museum.html
0247デフォルトの名無しさん
NGNGWEB+DBの加藤さんの記事だけだよね。
0248デフォルトの名無しさん
NGNGもう少し露出があってもいいんだがなあ>firebird
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG事なんでしょう。
0251デフォルトの名無しさん
NGNGもうちょっと知名度が出ても良いと思うんだけどね。
牽引者がいないのがつらいところだわなあ
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGなんと
日系オープンの7・8合併号に
オープンソースDBMSとしてMySQLやPostgreSQLと一緒に
出てる
内容はただの照会程度
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG0256***
NGNGまた、InterBaseってのはどのくらい良い/悪いDBMSなんでしょうか。
私的には、資料が皆無に等しいというのが欠点に見えるのですが。
0257デフォルトの名無しさん
NGNG一般的なSQLの知識があればあとはヘルプを見ながらなんとかなるよ
Delphiの場合
IBTableは使わないほうが無難だけど(俺は代わりにIBDataSetを使ってる)
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG禿同。IBTableはかなり危険だ。
>>256
BDEはあまり好きじゃないんで最近はdbExpressとADOばっか使ってるが
ADOあればBDEいらないんじゃないかな〜と思う。
なんだかんだいってもADO楽チンだし。
資料は付属のマニュアルでほとんど間に合ってる。
(いい意味で)低機能RDBMSなんであまり悩むことがないかな。
ところでIBのOLE DBドライバ(っていうのか?)って
http://www.oledb.net/
以外にない?
商用利用できるのがほしいんだが・・・
BorlandはOLE DBドライバ配布しる!
0260デフォルトの名無しさん
NGNG> 禿同。IBTableはかなり危険だ。
これはどうしてでしょう?教えてたもれ
0261デフォルトの名無しさん
NGNGSELECT * FROM テーブル名
と同じだから、無駄なデータがイパーイ流れたりする
ましてや、Paradoxのテーブルと同じようなつもりで扱うと
凄まじい量の問い合わせが発生したりする
(初めて使ったとき計算項目で他のテーブルを参照してエライ目にあった)
ま、おいらがヘタレなだけかも知れんけど
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG参照オンリーだとあんまり問題でないが、更新したりするとFetchしなくなったりすることが多い。
DataControlとかと一緒に使うと挙動不審なところがある。
(入力値が反映されなかったりとか)
全体的にTIB〜は他のTDataSetを継承したクラスと実装が微妙に違うっぽい。
(ソース追ったわけではないが)
FilterとIndexはちゃんと動くんでそっちを多用する場合は(フィルタ&ソートとか)
TIBTableのほうが使い勝手がいい。
あとは>>261のとおりパフォーマンスの面がけっこう大きい。
TIBTableが危険だっていうのMLのログで見たような・・・
0264サプリ
NGNGに頼りになる栄養補助食品です。締め切りが迫っている、
今晩中にあるいは翌朝までにやり遂げなければならない時に
頼りになるハーブ食品
www6.ocn.ne.jp/~beauty-s/index.htm
0265デフォルトの名無しさん
NGNG倉庫落ち阻止上げ
0266デフォルトの名無しさん
NGNG>>261 で指摘されているように、基本的にサーバのデータをローカルに
コピーすることになるから。
実際には(SQL サーバーを参照する)TTable にしろ TIBTable にしろ
いくつかの負荷減少コードが実装されているが、程度の問題に過ぎない。
0267デフォルトの名無しさん
NGNG>危険というか、SQL 使う意味が無くなることが一番の原因では?
SQLを使わなくてもいいようにラップしてくれるのがTDataSetなんですが・・・
0268デフォルトの名無しさん
NGNGあとさぁ、だれかソースハックしてる人いる?
手を入れやすい?
0269デフォルトの名無しさん
NGNGInterBase4をLinux/FreeBSDにポートした人たちもいる。
http://iblinux.rios.co.jp/
今のFirebirdのソースを追っかけてるかどうかわからないけど、
アドバイスはもらえるんじゃない?
0270デフォルトの名無しさん
NGNGちろっとしかソース見てないが
Win版は環境つくるのがめんどかったような・・・
VC++とBCC使うんだっけ?
0271デフォルトの名無しさん
NGNGWindows環境から、IBサーバをGUIな環境で見てらっしゃる方はいらっしゃいますか??
ODBC + MS Accsess
ODBC + WinSQL
と試してみましたが、IBコンソールほど、使い勝手がよいとも言えず、
模索中です。
# ODBC接続だったらDB毎にODBCで接続してやらないといけなくて・・・
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGMarathonがかなりお勧め
http://gmarathon.sourceforge.net/
0274デフォルトの名無しさん
NGNG>FireBird最新版(1.0)に上げたら、今まで使ってたIB Consorlが使えなくなってしまいました。
普通に使えてますけど・・・OSはWindows 2000とXP
0275274
NGNG0276271
NGNGログインしようとすると
Cannot attach to services manager
Services functionality will be supported in a later version of the product
と表示されてしまうんです。
ちなみに、Win2000です。
コンソールは、1.0.0.327Jです。
どこか設定ミスでしょうか。
0278271
NGNGちなみに、Del6は、Professional以降ですよね??
Personalしか持っていないので、やっぱ、お金かけないとダメですね。
使いやすさを求めるなら。(T_T)
0279271
NGNGしかし、やはり同じエラーが発生しました。
ちなみに、Borlandからダウンロードできました。( 278は無視してください(w )
# まだ、何かあるのかなぁー
0280271
NGNGClasicサーバーじゃ、使えないんですね。。。スマソ
0281デフォルトの名無しさん
NGNGIBConsoleよりも使い勝手いいかも。
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGmarathonのほうが上だと思うんだが・・・
0284デフォルトの名無しさん
NGNGSYSDBA/masterkeyでログインできないんだけど。
0285デフォルトの名無しさん
NGNG'SYSDBA'
'masterkey'
で login できています。
0286デフォルトの名無しさん
NGNGttp://www.cvalde.com/misc/packages_and_utilities.htm
0287デフォルトの名無しさん
NGNG違ったっけ?(そもそもプロセス落ちてるとか。)
0288デフォルトの名無しさん
NGNGアカウント管理用のDBが無いとか(^^;
0289デフォルトの名無しさん
NGNGhttp://ex.2ch.net/test/read.cgi/nanmin/1028974649/l50
0290デフォルトの名無しさん
NGNGいや、これだ
http://2style.net/maido/R3_temp.swf?inputStr=%83q%83%87%83f%81%5B%83C%81I%81I%81I%81I
0291デフォルトの名無しさん
NGNGアクセス負荷をかけると 'lock manager out of room' ってエラーが
出ちゃいます。
isc_configのV4_LOCK_MEM_SIZEを増やしてみたら改善はしたけど、
まだ現象は出る・・・。これって、何がまずいんですかね?
プログラムのせい?
0292デフォルトの名無しさん
NGNG283>
Marathon すごい高機能ですね!感動しました!
IBConsoleより、よっぽど便利な気がするのですが・・・
0293デフォルトの名無しさん
NGNGOSは?SuperServerか?
0294291
NGNG0295デフォルトの名無しさん
NGNGだからよー、SuperServerかって聞いてんの。
0297デフォルトの名無しさん
NGNGOS(LinuxやWin2000)で、制限しないとダメでしたでしょうか?
環境:Windows2000,FireBird1.0,Apache2.0.35
0298291
NGNG0299デフォルトの名無しさん
NGNG具体的な内容を示せ。
V4_LOCK_MEM_SIZE 変更して、改善されたのか?
じゃ値をもっと大きくするとどうなる?
場合によってはLinuxカーネルの方もチューニングする必要あるかもしれんぞ。
http://www.ibphoenix.com/ibp_sem_sm.htm
>>298
iblinuxメーリングリストでも同じこと質問してるだろ。
答えが欲しいなら、ちゃんとした情報を付けて
メーリングリストの方に出し直せ。
0300300
NGNG0301デフォルトの名無しさん
NGNGキリバンゲット代金として一万五千円いただきます。
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNGダイジョーヴイ
0304303
NGNG0305デフォルトの名無しさん
NGNG0306InterBase初めて使う
NGNGInterBaseをDBにしてシステム組んでますが、問題にぶちあたりますた。
JDBC系(Javaサーブレットから)、とそれ以外(主にkylixアプリ)、
の二系統から同時に接続しています。
JDBC系でデータ更新すると他のJDBC系の接続ですぐ更新したデータを見れるのに
JDBC以外の接続から見るとデータが更新されてなかったり(遅れて更新されたり)
それ以前に、片方が接続していると、もうかたほうの系統が接続できなかったり
する事もあるし、もうわけわかりません。
同じような体験してる人いますか?
0307デフォルトの名無しさん
NGNGないですか?Kylix側はdbExp.だからGDS直叩きですよね?
0308306
NGNGやっぱりキャッシュされてるのかな?
Javaから直にアクセスする方法はないものか・・・
そもそも、JDBCと、それ以外の接続の混在は想定されてないとか・・・
まさかそんな事はないよね。
(日本語の)Web、ML、ニュースグループ、書籍、ありとあらゆる情報調べたけど、
参考になりそうな情報もなし・・・
0309デフォルトの名無しさん
NGNGJDBCやdbExpはわからんけど、両者でデフォルトの排他レベルが違ってるとか。
0310デフォルトの名無しさん
NGNGここの接続パラメータのcache="n"だとか?
0311306
NGNG確認してみました。デフォルトのままで、同じレベル
(commit_readed?だっけ?)になってました。レベル自体も、問題ないみたいだし・・・
>>310
せっかく情報いただいたけど、このcacheに相当する設定がいったいどこにあるやら
いろいろ探したけどわかりませんでした・・・スマソ
別な方法考えるしかなさそう。Java(servlet)からInterBaseにアクセスするには、
他に方法はないのだろうか。
ボー○ンドは、高いサポート料を別に払わないとサポート受けられないし・・・(悲
0312デフォルトの名無しさん
NGNGオープンソースってのはそういうものさ。
0313Firebird にしようよ!!!
NGNGより詳しく環境を提示してくれない?
>フルLinuxベースで、
>InterBaseをDBにしてシステム組んでますが、問題にぶちあたりますた。
>JDBC系(Javaサーブレットから)、とそれ以外(主にkylixアプリ)、
>の二系統から同時に接続しています。
・Linux はディストリビューション、バージョンは?
・InterBase のバージョンは? Classic or Super
・InterClient のバージョンは?
・JDK のバージョンは?
・サーブレットコンテナは?
0314313 の続き
NGNG>JDBC以外の接続から見るとデータが更新されてなかったり(遅れて更新されたり)
>それ以前に、片方が接続していると、もうかたほうの系統が接続できなかったり
サーブレットで JDBC 使ってデータ更新とかしてるってことだと思うけど、
どうやってるの?コネクションプールしてるとか?
とりあえず、オレもサーブレットで InterBase/Firebird 使ってるけど、オレの場合は
コネクションプールとかはしてなくて、HTTP リクエストごとに、
DB接続→データ更新→DB接続切断
のような単純な処理してるけど、DB接続切断後に IBConsole とか使って確認したりしてるけど、
更新されてないようなことは今までないけどね。(当然のことだと思うが。)
どの時点で見てみて、更新されていない状態になるってこと?
トランザクションコミット後?DB切断後?
まさかコミット前ってことじゃないよね?
ちなみに当方の環境例)
・Win/Linux + Firebird 1.0SS + Tomcat 3.x/4.0.x + InterClient 2.01 + JDK 1.3.x/1.4.x
・Win + InterBase 5.6 + InterClient 1.6 + Tomcat 3.x (4.0.x) + JDK 1.3.x
0315314 の続き
NGNG>せっかく情報いただいたけど、このcacheに相当する設定がいったいどこにあるやら
>いろいろ探したけどわかりませんでした・・・スマソ
ちらっと見たけど >>310 のって JDBC と無関係なんでは?
Connection 時に "suggestedCachePages" っていうキャッシュ関係のパラメータがあるみたいだけど、
何か関係があるのか?? オレは使ってことないし、よくわからないけど。
(デフォルトは 0 みたいだからキャッシュしないと思うけど。)
>ボー○ンドは、高いサポート料を別に払わないとサポート受けられないし・・・(悲
そうだね。それに金払っても問題解決するとも限らないし。
0316Firebird にしようよ!!!
NGNG>JDBC系(Javaサーブレットから)、とそれ以外(主にkylixアプリ)、
>の二系統から同時に接続しています。
ってことで、サーブレットで更新したデータが kylix アプリの方で
更新前のものが読み込めちゃうってことなんだろうけど、
何かキャッシュの問題じゃなくてトランザクションの問題のような
気がしてきた。
>確認してみました。デフォルトのままで、同じレベル
>(commit_readed?だっけ?)になってました。レベル自体も、問題ないみたいだし・・・
デフォルトの排他レベルは SNAPSHOT なんじゃないの?
この場合は、サーブレット側のデータ更新前に、Kylix の方でトランザクション開始して、
サーブレット側データ更新後に、Kylix の方でそのままのトランザクションで
読み込もうとしても更新前のデータが読み込めるから、それが原因のような気がしてきた。
本当に READ COMMITTED なのかどうか確認した方がいいと思う。
もう一つの確認方法として、データ更新前に kylix アプリで内容を確認しておいて、アプリ終了する。
次にサーブレット側でデータ更新してから、再度 kylix アプリを起動して内容を確認してみる。
更新された内容が読み取れるのであれば、kylix 側アプリのトランザクションの設定が問題の
可能性が高いと思う。
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGトランザクションが常に存在してるような感じになるから
Web側で更新された後にKylix側のトランザクション張りなおす
ような感じにしないとだめなような気が。
使ったこと無いけどEventAlert使ってみるとか
0319Firebird にしようよ!!!
NGNGたぶんそれが問題だろうね。
でもわざわざイベントアラータ使わないで、明示的にトランザクションすれば間違いない、はず。
>>306
下のようなコードにした方がいいってこと。
------------------------
■ データ読み出しメソッド
------------------------
(トランザクション開始)
try
select ... from ...
(コミット)
except
(ロールバック);
end;
------------------------
0320306
NGNG>>313
DB:Redhat7.2 Linux + InterBase6.0サーバー SS
servlet(WEB):RedHat7.2 Linux + JRUN4.0 + InterClient2.02
です。InterBaseの動作環境はRH7.0なんですよね。でも、7.0にインストールしたら全然動かない・・・
>>314
>>更新されてないようなことは今までないけどね。(当然のことだと思うが。)
ちょっと説明不足でしたが、こちらも、JDBCとIBConsoleだけの時は大丈夫なんです。
>>316
>>デフォルトの排他レベルは SNAPSHOT なんじゃないの?
スンマセン、確認したらその通りでした。間違ってました。
そして、レスを参考に、考えなおしてみました。今まで、InterClientばかり問題視してたのですが、
みなさんおっしゃる通り、kylixの接続によりJDBCが排他される、と考えると、
今までの現象が全部納得いきました。
0321306
NGNGそして、それぞれのkylixの接続の状態で、JDBCの書き込むがうまくいくかどうか調べたところ、
・kylixがconnectionだけ --> JDBC書き込みOK
・connection+select(トランザクションにしない) --> NG
・connection+select(トランザクションとして、commitまで行う) --> 期待したのですが、NG
・connection+select+切断後 --> OK
・connection+select+切断後+またconnectionだけ --> なぜかNG
とにかく、kylixが一度でもアクセスしちゃうと、だめみたいです。
その間は、JDBCから書き込みしてもIBConsoleから見えないし
(しかしJDBCエクスプローラで確認すると見える InterServerのキャッシュにある?)
そして、kylixを切断すると、すぐにIBConsoleから見えるようになりました。
いちいちselectするたびに切断というのも・・・トロくなるし
というわけで、もう時間もないのでちょっとDBの扱いかたを変えて行くことにしました。
(JDBC系とkylix系のデータを別ファイルにする。さすがに別ファイルだと排他されませんでした。
二つのファイルの整合は、別な処理で行ってあわせる)
いろいろありがとうございました。
あとで時間があったら、ちゃんと解決したい・・・
0322デフォルトの名無しさん
NGNG明示的なトランザクションを掛けてないとするとデフォルトトランザクション
に問題が?一度パラメータの内容をログに吐かせて確認を。
http://www.borland.co.jp/interbase/tech/free_ib_compo/compo05.html
IBXのバグかも知れないのでこちらのチェックも。
http://codecentral.borland.com/codecentral/ccweb.exe/author?authorid=102
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGプロシージャ、トリガ内の言語が拡張されていてなかなか良さげ。
CASE, NVL, NULLIFとかあるぞ。
ところで重いストアドを実行中は他のクライアントからの軽いクエリとか
でも急に重くなるんだよな。なんかいい案ない?
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG夜間バッチ
0327324
NGNGInterBase/FireBirdは現状SMPに対応してないんだっけ?
対応してるならSMPのCPUパワーにものを言わせて解決しても良いんだけど。
SMP未対応ならHyperThreadのXeon, P4でもうまく動かないのかしらん。
0329デフォルトの名無しさん
NGNGどう問い合わせればいいのでしょう?
oracleでは
select sysdate from dual;
とかで大丈夫なんだけど・・・
あと、tableの一覧修得方法などをご存じの方
どうかご教授くだされ
0330デフォルトの名無しさん
NGNGSELECT CURRENT_DATE FROM NANIKA_TABLE;
SELECT CURRENT_TIME FROM NANIKA_TABLE;
SELECT CURRENT_TIMESTAMP FROM NANIKA_TABLE;
これで取得できる。
テーブルの一覧は qli を使えば show fields; でいけるはず。
isqlとかでやる方法は知らない。
0331火の鳥
NGNGSELECT rdb$relation_name AS tablename
FROM rdb$relations
WHERE rdb$view_source IS NULL
AND rdb$system_flag = 0
ORDER BY rdb$relation_name; ← この行は必ずしも要らない
もっとシンプルな方法があるかもしれないが、漏れはこれ使ってる。
■ このスレッドは過去ログ倉庫に格納されています