Mysql внешний доступ - PullRequest
       4

Mysql внешний доступ

2 голосов
/ 31 января 2011

Есть ли способ получить доступ к базе данных MySQL с помощью C #, когда внешний доступ не включен, и у меня нет возможности его включить?Какой-то интерфейс PHP или что-то подобное может быть?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 31 января 2011

Вы можете написать свой собственный протокол поверх HTTP (или поверх SOAP, поверх HTTP), но при этом вам нужно убедиться, что вы не подрываете безопасность ....

<?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 голосов
/ 31 января 2011

Доступ к БД MySQL определяется тем, настроена ли БД для прослушивания порта с удаленных IP-адресов, и разрешена ли сеть для трафика на этом порту.И база данных, и брандмауэр / сеть нуждаются в настройке.Если они оба не настроены для разрешения внешнего доступа, вы не сможете получить к БД удаленный доступ с помощью чего-либо.

Если они настроены и настроены правильно, то вы сможете каким-то образом получить удаленный доступ к БДиспользуя клиентскую библиотеку.Я не знаю, имеет ли C # свои собственные ограничения на подключение к удаленной БД, если да, то да, вам нужно будет найти другой способ подключения, который можно обернуть в C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...