Существует множество способов предотвращения SQL-инъекций и других SQL-хаков. Вы можете легко найти его в Интернете (Google Search). Конечно, PDO - одно из хороших решений. Но я хотел бы предложить вам некоторые хорошие ссылки с помощью SQL Injection.
Что такое SQL-инъекция и как предотвратить
Руководство PHP для SQL-инъекция
Microsoft объяснение SQL-инъекции и предотвращения в PHP
и некоторые другие, подобные Предотвращение SQL-инъекций с MySQL и PHP
Теперь, почему вам нужно предотвратить запрос из SQL-инъекции?
Я хотел бы сообщить вам: почему мы пытаемся предотвратить SQL-инъекцию с помощью Ниже приведен короткий пример:
Запрос для проверки подлинности входа:
$query="select * from users where email='".$_POST['email']."' and password='".$_POST['password']."' ";
Теперь, если кто-то (хакер) помещает
$_POST['email']= admin@emali.com' OR '1=1
и пароль что-либо ....
Запрос будет анализироваться в системе только до:
$query="select * from users where email='admin@emali.com' OR '1=1';
Другая часть будет отброшена. Итак, что будет? Неавторизованный пользователь (хакер) сможет войти в систему как администратор без своего пароля. Теперь он может делать все, что может сделать администратор / адрес электронной почты. См., Очень опасно, если SQL-инъекция не предотвращается.
От командной строки запустите sqlcmd
:
sqlcmd -S <server> -i C:\<your file here>.sql
Просто замена <server>
с местоположением Вашего поля SQL и <your file here>
с названием Вашего сценария. Не забывайте при использовании экземпляра SQL, синтаксис:
sqlcmd -S <server>\instance.
Вот список всех аргументов, можно передать sqlcmd:
Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]
Выполните его в командной строке с osql, посмотрите здесь:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL
Ваш вопрос весьма схож с этот
, можно сохранить файл как .txt или .sql и выполнить его от Studio управления SQL-сервером (я думаю, что меню, Открываются/Запрашивают, тогда просто выполняют запрос в интерфейсе SSMS). Вам, возможно, придется обновить первую строку, указав на базу данных, которая будет создана или выбрана на Вашей локальной машине.
, Если необходимо делать эту передачу данных очень часто, Вы могли бы тогда пойти для репликации. В зависимости от Ваших потребностей репликация моментальных снимков могла быть в порядке. Если необходимо синхронизировать данные между двумя серверами, Вы могли бы пойти для более сложной модели, такой как репликация слияния.
РЕДАКТИРОВАНИЕ: Я не заметил, что у Вас были проблемы с SSMS, связанным с размером файла. Тогда можно пойти для командной строки, как предложено другими, репликация моментальных снимков (опубликуйте на основном сервере, подпишитесь на локальном, копируйте, затем откажитесь от подписки), или даже копируйте/восстанавливайте
файл в основном содержат данные для двух новых таблиц.
Тогда можно найти его более простым только к DTS (или SSIS, если это - SQL Server 2005 +), законченные данные, если эти два сервера находятся в той же сети.
, Если эти два сервера не находятся в той же сети, можно скопировать исходную базу данных и восстановить ее к новой базе данных по целевому серверу. Тогда можно использовать DTS/SSIS, или даже простое INSERT INTO SELECT
, для передачи этих двух таблиц целевой базе данных.