Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21

Защита от порчи данных

10.12.2012, 16:29. Показов 1211. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть MySQL сервер. К нему подключаются программы-клиенты. В клиенте можно залогиниться и завести нового пользователя. Но зная логин и пароль я могу подключиться напрямую к серверу и удалить таблицу пользователей, например.
Как вы защищаетесь от таких ситуаций? Какие решения вы знаете?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2012, 16:29
Ответы с готовыми решениями:

Как происходит процесс "порчи" компонентов компьютера?
Добрый день! Я искал в гугле, но нигде не нашел нормального ответа. Там просто пишется, что процесс устаревания у компонентов...

Глюк печатания и глюк порчи константы
Дамы и господа! Я столкнулся с двумя глюками, которые не нашёл в списке распространённых ошибок. 1) При попытке распечатать массив...

Защита данных
Для диплома нужно создать простенькую защиту данных. Планирую сделать так: в базе хранится пароль пользователя, а на самой базе Access 2007...

12
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
10.12.2012, 18:08
ну так то есть права пользователей. Например только на чтение
0
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21
10.12.2012, 18:27  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
ну так то есть права пользователей. Например только на чтение
Но тогда функциональность приложения ограничивается лишь чтением. А хотелось бы и писать.

Неужели без прослойки между клиентом и базой никак не проконтролировать пользовательские операции?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 829
Регистрация: 09.09.2009
Сообщений: 29,554
10.12.2012, 18:33
а привилегий вообще-то в мускуле "чуть-чуть больше", чем две...
http://dev.mysql.com/doc/refma... privileges
0
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21
10.12.2012, 18:44  [ТС]
Стандартная ситуация есть таблица и в нее пишут user1 и user2.
Пользователи могут обновлять свои записи.
И user2 может обновить запись user1. А этого не хочется.
Проблема не в том сколько прав, а как ими пользоваться. Вот как решить данную проблему? Какие решения вы знаете?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 829
Регистрация: 09.09.2009
Сообщений: 29,554
10.12.2012, 18:59
читаем только по диагонали?

вы привели пример
Цитата Сообщение от w72er Посмотреть сообщение
зная логин и пароль я могу подключиться напрямую к серверу и удалить таблицу пользователей, например.
если вашей учетной записи не дать право на команду DROP - фиг вы что удалите!
0
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21
10.12.2012, 19:11  [ТС]
Dmitry, как бы ты решил задачу в пятом коментарии?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 829
Регистрация: 09.09.2009
Сообщений: 29,554
10.12.2012, 20:20
тупо в лоб - добавь в таблицу поле с указанием того, чья была запись, и при обновлении записи проверяй - а тот ли юзер ее обновляет...
0
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21
11.12.2012, 06:18  [ТС]
тупо в лоб - добавь в таблицу поле с указанием того, чья была запись, и при обновлении записи проверяй - а тот ли юзер ее обновляет...
У меня есть клиент для базы написанный на c#, который непосредственно соединяется с базой, где осуществлять ту проверку, что ты говоришь? Нужно ли вводить дополнительный сервис между клиентом и базой?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
11.12.2012, 09:24
SQL
1
2
3
SELECT *
FROM tab1
WHERE fld_user = USER
Т.е. выбираешь только те строки, которые в колонке fld_user имеют определенное значение (имя текущего пользователя). Одним словом, все решается на уровне SQL
0
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21
11.12.2012, 10:17  [ТС]
Спасибо, друзья, я понял, что не правильно формулирую ситуацию и вопрос. Сейчас вы показали мне хороший пример, который я и приведу.

Есть приложение написанное на c#. Приложение может подключаться к базе данных, используя логин и пароль, введенный пользователем. Иными словами в базе создан пользователь user1 с паролем pass1. В приложении пользователь вводит user1/pass1, входит в систему и приложение создает соединение к базе данных от имени user1. Тоже самое делает другой пользователь user2/pass2.
Пользователи пишут в таблицу, при этом пользователи должны изменять только свои записи.
Если я в приложении использую какой-либо защитный sql запрос, то никто не мешает, подключиться к базе непосредственно, мы ведь знаем логин и пароль. Другие атрибуты соединения, получится получить немного трудоемко, но возможно. Раз так, то защитой (sql запросы) только в приложении на c# не обойтись. Согласен, это возможно при прослойке, например, сайт и там есть логика на php, где есть соответствие обработчика запроса с sql запросом(запросами).

Вопросы:
1. Как сделать возможным пользователям править только свои записи в приведенной мне архитектуре приложения?
2. Если никак, то как?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
11.12.2012, 10:47
Цитата Сообщение от w72er
Вопросы:
1. Как сделать возможным пользователям править только свои записи в приведенной мне архитектуре приложения?
2. Если никак, то как?
Есть несколько способов:
1. на основе показанного мной запроса создать view и выдать гранты на пользование view, а не базовой таблицы. Поскольку форма SELECT при обращении к таблице и view одинакова, то пользователь может и не подозревать, что он работает с view
2. Создать процедуры для работы с таблицей и выдавать гранты только на работу с этими процедурами
3. В некоторых СУБД есть и другие средства. Например, в Oracle такое называется RLS - Row Level Security. Но не уверен, что такие есть в MySQL
1
3 / 3 / 1
Регистрация: 28.11.2012
Сообщений: 21
11.12.2012, 11:12  [ТС]
Спасибо, Grossmeister. Это то, что я искал.
Нашел пример:
Implementing row level security in MySQL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2012, 11:12
Помогаю со студенческими работами здесь

Защита данных
Здравствуйте, уважаемые форумчане! Возникла такая задача: есть база данных MS Access, необходимо обеспечить защиту данных, а точнее...

Защита данных
Для создания проекта мне необходимо защитить данные. Интернет мне для этого не нужен. Один человек посоветовал мне использовать архивы с...

Защита данных
Я хочу отнести компьютер в ремонт но на жостком диске храняться важные данные. Я хочу поменять жосткий диск на другой и отнести в ремонт....

Защита данных !
Здравствуйте ! У меня разделена база "База1"(Формы, запросы, отчеты отдельно), "База2"(только таблицы) отдельно, сделал для...

Защита данных
К примеру я не хочу что бы кто попало мог открыть или скачать какой то файл на сервере Возможно ли каким то образом запретить их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru