2011-01-31 16 views
2

外部アクセスが有効になっていないときにC#でMySQLデータベースにアクセスする方法はありますか?それを有効にする方法はありませんか?何らかのPHPインターフェイスやそのようなものがありますか? ありがとうございます。Mysqlの外部アクセス

答えて

1

....あなたはHTTPの上、(またはHTTPの上にSOAPの上、上)で独自のプロトコルを書くことができますが、あなたはそうすることによって、セキュリティを損なうていないことを確認する必要があり

<?php 

$shared_secret = 'shhhh_s3cr3t!'; 
$qry=$_GET['qry']; 
$remote_ip=_SERVER["REMOTE_ADDR"]; 
if (sha1($shared_secret . $qry , $remote_ip)!=$_GET['auth']) { 
     header("HTTP/1.1 401 Unauthorized"); 
     print "not authorized!"; 
     exit; 
} else { 
    $dbh=mysql_connect($db_host, $db_user, $db_pass); 
    if ($dbh===false) error_reply(); 
    $r=mysql_query($_GET['qry'], $dbh); 
    if ($r===false) error_reply(); 
    $result=array(); 
    while ($result[]=mysql_fetch_assoc($r)); 
    print serialize($result); 
    exit; 
} 

function error_reply() 
{ 
    header("HTTP/1.1 503 Internal Server Error"); 
    print mysql_error(); 
} 
+0

あなたの返信はthxですが、私は自分自身のPHPインターフェイスを書くことに決めました。 –

0

MySQL DBへのアクセスは、DBがリモートIPアドレスからポートをリッスンするように設定されているか、ネットワークがそのポートでトラフィックを許可しているかどうかによって制御されます。データベースとファイアウォール/ネットワークの両方で設定が必要です。これらの両方が外部アクセスを許可するように設定されている場合を除き、リモートでDBにアクセスすることはできません。

これらが正しく設定されて構成されていれば、クライアントライブラリを使用してリモートでDBにアクセスできるはずです。私はC#がリモートDBに接続するための独自の制限を持っているかどうかわかりませんが、そうであれば、C#でラップできる別の方法を見つける必要があります。

+0

私は思っています* OPはphpMyAdminのようなものを探していますが、C#アプリケーションから消費できる一連のWebサービスとして "外部"の必要はありません*直接MySqlサーバーに接続してください – Rob