|
Соединиться из Builder 2006 с MySQL, но не светить логин/пароль |
|
|
|
Nov 17 2011, 17:54
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Что есть куча пользователей с точки зрения базы? Те же самые записи базы данных  Или dbExpress не позволяет программно создавать пользователей? Я к чему веду. Всяко в вашей программе будет интерфейс создания пользователей. Так пусть этот интерфейс вместо создания пользователей в специальной табличке базы данных создаёт их сразу как пользователей MySQL. Это решит ваши проблемы с хранением паролей. А права конкретного пользователя после ввода пароля можно определять по правам пользователя MySQL на какую-либо таблицу. По сравнению с хранением пароля в exe это видится более грамотным решением. ИМХО конечно.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Nov 18 2011, 07:20
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(toweroff @ Nov 17 2011, 15:42)  Вот возникла такая задача - из приложения получить доступ к базе Казалось бы - ничего сложного, dbExpress в руки и вперед НО! Логин/пароль к базе будут храниться в exe-щнике, который очень просто распотрошить
Как нормальные люди решают подобные задачи? Во первых сгенерить логин и пароль в виде случайных (и длинных) строк (что бы они не опознавались именно как осмысленные строки). Во вторых в exe'нике их зашифровать, что бы их не было видно именно в виде строк. Если приложение ставится на компьютер отдельно, то можно при установке записать логин и пароль на компьютер (в реестр в зашифрованном виде, а ключ через CryptoAPI в локальное хранилище ключей), и отдельно само приложение (в нем уже никаких логинов/паролей не будет вообще) Кстати, если на машине есть TPM, то можно ключ записать туда. Тогда даже сняв копию со всей системы нельзя будет перенести это на другой комп.
|
|
|
|
|
Nov 18 2011, 11:03
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(toweroff @ Nov 18 2011, 00:18)  ...нужно подсоединиться к базе из приложения (пользователь вводит логин/пароль), получить доступ ТОЛЬКО к тем данным, которые относятся к этому пользователю...ну и 100% никакие логины/пароли в приложении не должны храниться. если нужен коннект от клиента к бд и только со своими правами (и нельзя хранить на клиенте явки-пароли), то тут АНТОХА всё прально написал. в точке где заводится клиент, его логин/пароль=логин/пароль к самой базе и права на базу=те которые вы прописываете при создании. механизм создания(скрипт) учётки в базе - на серваке. но это решение (держать коннекты к базе от клиентов) - мягко говоря нагрузка на БД. при этом в будущем эту систему тяжело масштабировать и сопровождать. удачи вам (круглый)
|
|
|
|
|
Nov 18 2011, 11:30
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
спасибо
нагрузки будет мало, очень мало
логин/пароль будет жестко прошит в девайсе, который будет отдаваться клиенту (для каждого свои). То есть перед тем, как девайс будет вручен клиенту, создается доступ к базе по логинау/паролю в этом девайсе. Потом пользователь подключил девайс, прога выудила из него эти логины и с этим начала ломиться к базе. Оттуда получает пару сотен байт и закрывает соединение Соответственно, даже если выудить из девайса информацию о логине и пароле, не должно произойти следующего: 1. Получения сведений о других девайсах (точнее, данных, относящихся к ним) 2. Получения сведений, относящихся к этому девайсу, но входящих в "админовое" поле
Да, пользователи MySQL - интересный подход. Но! Допустим, данные хранятся в нескольких таблицах. ID девайса, дата передачи. ID девайса, его "путешествия". ID девайса, ключи шифрования Это так, образно Вот скажите мне, можно правами пользователя MySQL навесить фильтр на ID? То есть логинится пользователь, к нему каким-то образом привязывается ID девайса И к любым запросам, которые он будет делать к этим таблицам, будет автоматом добавлен фильтр по ID? Если такое возможно, то таки да, есть смысл регулировать все пользователями MySQL и их правами. Если нет - тогда нужен друной путь...
|
|
|
|
|
Nov 18 2011, 15:17
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(toweroff @ Nov 18 2011, 17:30)  Вот скажите мне, можно правами пользователя MySQL навесить фильтр на ID? То есть логинится пользователь, к нему каким-то образом привязывается ID девайса И к любым запросам, которые он будет делать к этим таблицам, будет автоматом добавлен фильтр по ID? Если такое возможно, то таки да, есть смысл регулировать все пользователями MySQL и их правами. Если нет - тогда нужен друной путь... Не выйдет. Права даются на отдельную таблицу. Но. Можно создать для каждого пользователя отдельный VIEW типа "SELECT * FROM TABLE_FOR_ALL_USERS WHERE USER_ID = x", и дать ему полные права на этот вид. А на таблицу - не давать. Тогда выйдет как надо - есть общая таблица для сбора статистики, а для каждого пользователя для неё отдельный вид.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|