Внедрение SQL, используя родную базу данных, logins/users

Разрабатывая приложение, где пользователи соединяются с их родными логинами базы данных, я не должен заботиться о праве Внедрения SQL? Причина, являющаяся пользователями, может выполнить любой SQL, который они хотят так или иначе. (Есть места, где администраторы выполняют, СОЗДАЮТ ЛОГИН и СОЗДАЮТ ПОЛЬЗОВАТЕЛЬСКИЕ заявления, и они должны быть динамично построены.) я говорю о родном Приложении Windows на LAN.

2
nl ja de

3 ответы

Ну, Внедрение SQL - возможность выполнить SQL, таким образом, с доступом раковины SQL, все требуемое для "Внедрения SQL" уже разрешено. Однако, все еще необходимо заботиться, бегут ли пользователи как не администраторы, вероятно будучи ограниченным, к каким столам они могут получить доступ, и система посылает некоторые дополнительные команды SQL, в то время как вошли с более высокими правами (создайте пользователя, и т.д.). Использовать подготовленные заявления для такого кода.

2
добавлено
Применение только соединится с user' s владеют счетом в любом случае. Пользователи будут в ролях, которым назначили соответствующие привилегии. В SQL Server динамический SQL всегда выполняет под контекстом подключенного пользователя даже если it' s в процедуре.
добавлено автор Monstieur, источник

На самом деле, "Внедрение SQL" - распространенное заблуждение.
Неспособность <им> правильно форматирует их вопросы, люди изобрели вещь "внедрения SQL" как оправдание.
В то время как правильно отформатированный вопрос будет служить 2 целям сразу:

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

Я сомневаюсь, что вы хотите, чтобы ваши вопросы потерпели неудачу из-за некоторого непредвиденного символа. Так, неважно некоторой "инъекции", необходимо правильно отформатировать его. Но когда-то отформатированный, так или иначе не будет никакой инъекции. Так, необходимо коснуться о формате, не инъекциях.

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

0
добавлено
Есть несколько команд это don' t принимают параметры и только принимают последовательности.
добавлено автор Monstieur, источник

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

Большинство баз данных ограничивает разрешения на основе объектов - столы, взгляды, хранимые процедуры и т.д. Так, пользователь авторизовался, поскольку у "Боба" мог бы быть доступ к столу "продажи", но не стол "платежи".

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

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

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

0
добавлено
It' s применение LAN, которое непосредственно соединяется с базой данных. Соответствующие разрешения даны к ролям, которыми каждый пользователь будет в DBA.
добавлено автор Monstieur, источник
I' m только касавшийся заявлений, где у меня нет выбора, кроме как использовать динамический SQL. Все остальное или через ORM или параметризуется.
добавлено автор Monstieur, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

dbGeeks
dbGeeks
545 участник(ов)

Чат про базы данных, их устройство и приемы работы с ними. Разрешаются любые адеватные дискуссии в рамках тематики чата.

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

Разработка СУБД
Разработка СУБД
143 участник(ов)