2011-01-31 3 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

회신 귀하의 회신하지만 내 자신의 PHP 인터페이스를 작성하기로 결정했습니다. –

0

MySQL DB에 대한 액세스는 DB가 원격 IP 주소에서 포트를 수신 대기하도록 구성되어 있는지 여부와 네트워크가 해당 포트에서 트래픽을 허용하는지 여부에 따라 결정됩니다. 데이터베이스와 방화벽/네트워크 모두 구성이 필요합니다. 이 둘 모두 외부 액세스를 허용하도록 구성되어 있지 않으면 DB를 원격으로 액세스 할 수 없습니다.

올바르게 설정하고 구성한 경우 클라이언트 라이브러리를 사용하여 원격으로 DB에 액세스 할 수 있어야합니다. C#이 원격 DB에 연결하는 데 자체 제한이 있는지 여부를 알지 못합니다. 그렇다면 C#으로 묶을 수있는 다른 연결 방법을 찾아야합니다.

+0

나는 * OP가 phpMyAdmin과 같은 것을 찾고 있지만 C# 응용 프로그램에서 소비 할 수있는 웹 서비스 집합으로 "외부 세계"가 필요 없다는 것을 의미합니다 * 직접 * MySql 서버에 연결 – Rob