• 締切済み

SQLサーバをTCP/IPレベルで操作したい

MySQLを使ってデータベースの勉強をしています。 SQLサーバへのアクセス手段を提供するAPIは言語ごとに沢山公開されていますが、ちょっと必要に駆られまして、TCP/IPのレベルでMySQLのサーバと通信する必要が出てきてしまいました。 そこで、文献で通信プロトコルを調べようとしたのですが、見事に挫折。Port3306に届くパケットをダンプして眺めてみたのですが、複雑すぎてこれも挫折。 量が多くて英文のオンラインマニュアルから探すのもできない状態なのですが、書籍などで解説しているものはありませんでしょうか。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

>MS-SQLではなくてMySQLなのですが・・・。 確かに質問文に書いてありましたね。失礼しました。 そうしたら、タイトルに"SQLサーバ"って書かないでくださいね・・・。

pythian
質問者

お礼

し、失礼いたしました<(_ _)>

  • cse_ri2
  • ベストアンサー率25% (830/3286)
回答No.3

パケット通信を利用した、クライアント・サーバアプリケーション を自分で開発するとうことになるかと思います。 まぁTCP/IPプロトコルを使えばなんでもいいのであれば、 XMLなども視野に入るかと。 ようはクライアントから発行した支持をサーバのアプリケーション に投げ、APIを活用したMySQLへのアクセスはサーバアプリ で行うようにするということです。

pythian
質問者

お礼

ありがとうございます。そうですね。実際の入出力を行うプログラムを書いておいて、それに対して操作を行うようにしたいと思います。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>ユーザIDと実行時ごとに暗号化されたパスワードが流れていました。ホストとコネクションを張っているようなのですが、API経由で出来るなら、直に叩いてもできないのでしょうか・・・。 ですから・・・ パケットをモニタリングしただけで解読できる暗号だったら意味がないじゃないですか。 他にも、データ自体だって効率的に転送を行うために圧縮がされているかもしれませんし。 大体、Microsoftがそんなもん公開しているとも思えませんし、バージョンが変わるごとに仕様が変わってるかも知れませんし。 telnetやhttp等のテキストベースのプロトコルと一緒にしない方がいいですよ。

pythian
質問者

お礼

MS-SQLではなくてMySQLなのですが・・・。パスワードは、サーバからsaltが送られてきてそれを使って暗号化して送っているようなので、解読しなくてもエンコードの方法だけわかれば問題ないのではないかと考えました。 (その他の通信文は平文のテキストでした) フリーで各言語用の自作APIが公開されているなら、通信に関する仕様が公開されているはずだと考えたのです。ご意見ありがとうございます。もう少し考えてみます。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

無謀です。 ユーザIDやパスワードは? そんなのができたらセキュリティも何もなくなります。

pythian
質問者

補足

無論、認証もTCP/IPレベルで行おうとしています。実はパケットを覗いてみたところ、ユーザIDと実行時ごとに暗号化されたパスワードが流れていました。ホストとコネクションを張っているようなのですが、API経由で出来るなら、直に叩いてもできないのでしょうか・・・。

関連するQ&A