![]() |
|
|
![]()
|
|
| RinOSpro |
|
|||
|
Unregistered |
Всем привет!
Есть БД на MySQL, есть моя программа. Можно ли сделать как ни будь, так что бы сервер соединялся только с моей программой, при этом, к нему нельзя было подключится из других (phpMyAdmin, и т.п.) Сделайте пожалуйста зеркало на ветку по MySQL. |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
||||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Kbl4AH смешно
База много пользовательская. Есть моменты когда одни пользователи могут в просматривать только свои записи. В программе естественно стоит условие. Но вот теперь представим что кто то особо умный кто имея пароль подключился к БД через phpMyAdmin и посматрел все что ему не положено было бы смотреть. Поэтому я и хочу ограничиться подключением только из своей программы. Есть идеи? |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
я серьезно Я пока в таких тонкостях не разбираюсь... Но в общем... есть же привилегии... и как это пользователь с админскими привилегиями не сможет просмотреть твои данные? сможет... значит у особо умного должны быть привилегии для своих данных, у тебя - для своих... координировать должен админ, который имеет доступ ко всем данным... значит админ должен ограничить права особо умного... ты, наверное, ничего не сможешь поделать... |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Kbl4AH есть 10 пользователей. У каждого есть логин и пароль. Есть определенный набор дейсвий которые они могут выполнять. Права расставлены.
Есть скажем таблица Messages. Пользователи могут и должны работать с этой таблицей, но только со своими записями. Смотреть и уж тем более изменять чужие они не должны. Через программу так оно и есть. Но проблема в том что можно зайти не через мою программу (( а через phpMyAdmin к примеру. |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
так я про это же... твой пользователь значит должен иметь права на запись в Messages, а другой пользователь (любой кроме тебя) не должен заходить под твоим логином/паролем, а должен заходить под своими и не должен иметь прав чтения Messages... БД ведь не знает через какое приложение к ней подцепились... она только знает кто подцепился и какие он имеет права... ЗЫ. и я совсем не представляю как ты собираешься скрыть свои данные скажем от админа БД... |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
||||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 9 Всего: 51 |
Тогда лучше не давать пользователям прав на прямое чтение этой таблицы(!). А создать View или Stored Procedure, которая будет возвращать, только те записи, которые разрешено видеть текущему пользователю. В программе выводить данные через этот View/Stored Procedure. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
Сделай эти логины и пароли данными доступа к программе. А логин и пароль доступа к БД зашей в саму программу. На основании введенного логина и делай фильтрацию. Вот и получишь что пароль к БД будет "знать" только твоя программа, а пользователи будут иметь доступ к этой программе по своим, персональным логинам, никак не связанным с доступом к БД.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
Bose как вариант да, но это не решает проблему, ведь я образно привел одну таблицу хотя на деле их поболее.
Вот еще если если на таблицу нет прав, а на хранимку поставить, то разве будет работать хранимка? Poseidon пароль из программы вытащить не так уж и сложно. |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
Ну если так рассуждать, то и сервер не так уж сложно заставить думать, что к нему подключается именно твоя программа, когда на самом деле это не так. Против взлома ты вообще не защитишься.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| insoft |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 14.2.2007 Где: Тюменская область , г.Тобольск Репутация: 3 Всего: 3 |
RinOSpro
а метод шифрования данных тебе не подойдёт? потому что пароль как ты не крути никак не спрячешь, администратор в любом случае должен его знать.. |
|||
|
||||
| RinOSpro |
|
|||
|
Unregistered |
insoft как реализовать шифрование средствами MySQL?
ps Администратор я. Добавлено через 3 минуты и 58 секунд
Для начала надо научить его так думать)) Я вот пока не знаю как) И пока не услышал) Единственное что более похоже на реальное использование, так это хранимки или вьюхи. Добавлено через 9 минут и 26 секунд С таблицей Messages ни чего нельзя делать ни читать ни писать. Читать можно через View а как писать? Через хранимки? |
|||
|
||||
| RinOSpro |
|
||||
|
Unregistered |
Хотя через вьюхи тоже не получится (((
Вот смотрите:
Мы создали пользователя и отключили у него все права (даже на чтение)!!! теперь он не может даже видеть базу по SHOW DATABASE! Но если мы включим ему разрешение на SELECT то потом для отдельных таблиц перекрыть не сможем. тк нельзя перекрыть права более высокого уровня.
|
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 3 Всего: 133 |
RinOSpro, думаю тут только средствами php получится. На подобии как данный форум реализован. Т.е., как вариант, делаешь php-скрипт, который лезет в БД и возвращает данные. А программой же ты эти данные получаешь и обрабатываешь. Прокраммой, кстати, может стать и браузер. Но можно и свою научить. Иначе я не вижу варианта как защититься от взлома и получения пароля и при этом ограничить доступ.
Да, при использовании php можно ведь поставить в настройках сервера мускула доступ только с локалхоста. Тогда точно поотваливаются всякие майадмины и прочее. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |