2010-06-12 2 views
0

Я читал, что прямой доступ к базе данных SQL Server через Интернет небезопасен, поэтому мне интересно, какой промежуточный я могу и должен использовать между клиентом и сервером. Каковы наилучшие методы обеспечения безопасности и производительности?Как получить доступ к базе данных SQL Server?

+0

Подключается ли к нему только webapp? –

+0

Нет, я не добавил этот тег. На самом деле у меня есть традиционное настольное приложение. – user246392

+0

Прямой доступ с приложения на стороне клиента? –

ответ

2

Для прямого доступа вам придется использовать SSL для своих подключений, но, как правило, я бы не предоставил сервер баз данных в Интернете. Я бы разработал свой путь вокруг него, например, создав веб-службы перед сервером db.

0

Вы можете использовать с config.php. Вы должны написать имя db, db user, db password и host в config.php. Затем вы можете использовать [? Php require ("config.php"); ?] в вас страница. Измените [и] на {и}.

0

У вас может быть только страница на языке вашего веб-сайта (например, PHP, JSP, ASP и т. Д.), Которая запрашивает базу данных и возвращает нужные вам данные в любом формате. Например:

Если вы используете JQuery:

с клиентской стороны:

$.ajax({ 
    url: 'ajax/test.php', 
    success: function(data) { 
    $('.result').html(data); 
    alert('Load was performed.'); 
    } 
}); 

Здесь test.php бы подключиться к БД и запрашивать его и результат теста. php будет возвращен в переменной data.

2

Используйте API - Application Programming Interface. Это входная дверь для данных, которые вы хотите открыть. Это означает, что вам нужно будет определить, что вы раскрываете и как.

Например, Stack Overflow не позволяет напрямую обращаться к своей базе данных через кого-либо. НО, они позволили людям получить доступ к определенным частям своей базы данных через их Stack Apps API. Какие части? they have exposed certains parts с их собственным API -> веб-url, которые вернут данные, основанные на том, что вы запрашиваете. Результаты только в формате JSON (во время отправки этого ответа).

Here is a sample API method, который предоставляет некоторые из их баз данных. (EDIT: хмм, ни один из API ссылки работают ... ссылка я пытался показать не было ...

http://api.stackoverflow.com/0.8/help/method?method=answers/ {ID}/

)

Теперь .. если вы не хотите действительно думать о том, какие данные (например, таблицы БД, если вы используете реляционную базу данных, такую ​​как Microsoft SQL Server или Oracle Sql Server), но хотите предоставить базу данных ENTIRE только через Интернет. .. то, может быть, вы могли бы look at using OData держаться перед своей БД, чтобы разоблачить ее?

Другое Редактировать: Я принимал вас на себя, позволяя общественности получить доступ к вашей базе данных. В противном случае это должно быть на ServerFault.

1

Я написал этот прекрасный ответ, относящийся к веб-доступу к SQL-серверу, а затем вы заходите и обновляете его, указав, что у вас есть настольное приложение.

При этом, как было сказано выше, наилучшей идеей является не предоставлять сервер базы данных в Интернет. Если вам это абсолютно необходимо, тогда есть несколько возможных решений.

Внедрение своего рода VPN-соединения в сеть. У меня был экземпляр, где у нас было большое количество сайтов, все подключающихся к серверу базы данных (и сети компании) через VPN. Это заставило сервер базы данных отключиться от Интернета, при этом позволяя получить половину достойного доступа к информации. Это было для розничной сети с не очень большой пропускной способностью данных

Правильно настройте свои брандмауэры и разрешения на сервере. Это нужно делать в любом случае. Вы можете поставить сервер за брандмауэром, разрешая доступ только к 1433 и только из определенного диапазона IP (который, как я полагаю, будет возможен). Таким образом, вы можете как минимум снизить количество мест, из которых может произойти возможная атака.

Все это может быть использовано в дополнение к API и службам, упомянутым выше.

Смежные вопросы