- 締切済み
SQLサーバをTCP/IPレベルで操作したい
MySQLを使ってデータベースの勉強をしています。 SQLサーバへのアクセス手段を提供するAPIは言語ごとに沢山公開されていますが、ちょっと必要に駆られまして、TCP/IPのレベルでMySQLのサーバと通信する必要が出てきてしまいました。 そこで、文献で通信プロトコルを調べようとしたのですが、見事に挫折。Port3306に届くパケットをダンプして眺めてみたのですが、複雑すぎてこれも挫折。 量が多くて英文のオンラインマニュアルから探すのもできない状態なのですが、書籍などで解説しているものはありませんでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>MS-SQLではなくてMySQLなのですが・・・。 確かに質問文に書いてありましたね。失礼しました。 そうしたら、タイトルに"SQLサーバ"って書かないでくださいね・・・。
- cse_ri2
- ベストアンサー率25% (830/3286)
パケット通信を利用した、クライアント・サーバアプリケーション を自分で開発するとうことになるかと思います。 まぁTCP/IPプロトコルを使えばなんでもいいのであれば、 XMLなども視野に入るかと。 ようはクライアントから発行した支持をサーバのアプリケーション に投げ、APIを活用したMySQLへのアクセスはサーバアプリ で行うようにするということです。
お礼
ありがとうございます。そうですね。実際の入出力を行うプログラムを書いておいて、それに対して操作を行うようにしたいと思います。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>ユーザIDと実行時ごとに暗号化されたパスワードが流れていました。ホストとコネクションを張っているようなのですが、API経由で出来るなら、直に叩いてもできないのでしょうか・・・。 ですから・・・ パケットをモニタリングしただけで解読できる暗号だったら意味がないじゃないですか。 他にも、データ自体だって効率的に転送を行うために圧縮がされているかもしれませんし。 大体、Microsoftがそんなもん公開しているとも思えませんし、バージョンが変わるごとに仕様が変わってるかも知れませんし。 telnetやhttp等のテキストベースのプロトコルと一緒にしない方がいいですよ。
お礼
MS-SQLではなくてMySQLなのですが・・・。パスワードは、サーバからsaltが送られてきてそれを使って暗号化して送っているようなので、解読しなくてもエンコードの方法だけわかれば問題ないのではないかと考えました。 (その他の通信文は平文のテキストでした) フリーで各言語用の自作APIが公開されているなら、通信に関する仕様が公開されているはずだと考えたのです。ご意見ありがとうございます。もう少し考えてみます。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
無謀です。 ユーザIDやパスワードは? そんなのができたらセキュリティも何もなくなります。
補足
無論、認証もTCP/IPレベルで行おうとしています。実はパケットを覗いてみたところ、ユーザIDと実行時ごとに暗号化されたパスワードが流れていました。ホストとコネクションを張っているようなのですが、API経由で出来るなら、直に叩いてもできないのでしょうか・・・。
お礼
し、失礼いたしました<(_ _)>