C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

стр.: (2) < [1] 2 >
Пароль, Как задать пароль для таблицы BDE?
Лена
Отправлено: 21.09.2005, 14:58


Мастер участка

Группа: Участник
Сообщений: 501



Открываю, например, стандартную таблицу в Database Desktop из поставки Builder 6 clients.dbf из BSDEMOC, иду в меню Table->Restructure, далее захожу в выпадающий список окна Table Properties, а там нет описанного в книге Password Security есть Язык таблицы и Индексы.
Пробовала добавить явно компонент DataBase связала его с тем, что нужно и задала LoginPromt в true. Все равно таблица грузиться без проблем и без предложения ввести пароль.
Объясните по пунктам, пожалуйста, как закрыть таблицу dbf паролем. Чтобы информация в гриде появлялась лишь после ввода правильного пароля.
Спасибо.

olegenty
Отправлено: 21.09.2005, 15:10


Ветеран

Группа: Модератор
Сообщений: 2412



если по пунктам, то:
1. никак.
smile.gif
olegenty
Отправлено: 21.09.2005, 15:11


Ветеран

Группа: Модератор
Сообщений: 2412



да и вообще BDE уже много лет не рулит, выбери СУБД поприличнее, чем это устаревшее борландовое ядро.
Лена
Отправлено: 21.09.2005, 15:23


Мастер участка

Группа: Участник
Сообщений: 501



Я переделываю старый проект. Надо все оставить как есть, только добавить закрытие паролем таблицы.
olegenty
Отправлено: 21.09.2005, 15:29


Ветеран

Группа: Модератор
Сообщений: 2412



тогда организовывай это вручную. на уровне логики приложения. но при этом саму DBF таблицу просмотреть не средствами приложения не сможет только ленивый.
AVC
Отправлено: 21.09.2005, 15:42


Ветеран

Группа: Модератор
Сообщений: 1583



BDE — это средство для работы с ...
dbf — это где храняться данные.
Изначально dbf не предусматривает разграничение данных (ну нет у них паролей и проверок прав доступа). Следовательно можно попробовать
динамическое шифрование (очень неудобно, но хоть что-то)
"натравить" на файлы dbf ОС
статическое преобразование (при старте распаковываем, после завершения упаковываем)
что-то еще

Но по большому счету все это ерунда. biggrin.gif
(Как написал olegenty — покопаться не сможет только ленивый.)
Пока я отправлял он уже ответил. smile.gif

Отредактировано AVC — 21/09/2005, 14:46
Лена
Отправлено: 21.09.2005, 15:56


Мастер участка

Группа: Участник
Сообщений: 501



Секретность данных не критична, просто попросил пользователь добавить пароль. Я думала, есть стандартные свойства для задания паролей для DBF без программирования как для таблиц Paradox *.db в том же окне свойств таблицы.
Теперь знаю, что их нет smile.gif
AVC
Отправлено: 21.09.2005, 16:00


Ветеран

Группа: Модератор
Сообщений: 1583



Для успокоения пользователя добавьте пароль на приложение. biggrin.gif biggrin.gif
Vlad
Отправлено: 22.09.2005, 08:00


Машинист паровоза

Группа: Участник
Сообщений: 231



Если хочешь повесить пароль на DBF и шифрануть данные, то используй Apollo , эти компаненты для доступа к dbf имеют возможность шифровать данные в таблице на лету и дешифровать соответственно. А так, как было выше сказано товарищами, dbf таблица не позволяет устанавливать ни каких паролей по доступу к ней.
olegenty
Отправлено: 22.09.2005, 08:04


Ветеран

Группа: Модератор
Сообщений: 2412



ну, если уж менять компоненты доступа, то тогда и СУБД менять...
Лена
Отправлено: 22.09.2005, 09:02


Мастер участка

Группа: Участник
Сообщений: 501



QUOTE (olegenty @ 22/09/2005, 08:04)
ну, если уж менять компоненты доступа, то тогда и СУБД менять...

Думаю у меня не хватит ума поменять CУБД smile.gif
В приложении созданном давно, присутствует 48 огромных таблиц DBF, все они используются как данные для компонента MapX, который черпает из них информацию при своем отображении на форме — улицы, дома и т.д... Это картография.
Наверное эти Apollo мне легче будет применить в таком случае для шифрования, чем смена СУБД?
Подскажите, где взять эти Apollo?

olegenty
Отправлено: 22.09.2005, 09:18


Ветеран

Группа: Модератор
Сообщений: 2412



размер таблиц значения не имеет. но очевидным плюсом перехода на клиент-серверную СУБД станет перенос ВСЕЙ логики на сторону сервера (в данный-то момент ВСЁ без исключения делает клиентское приложение). это в разы упрощает сопровождение.
Vlad
Отправлено: 22.09.2005, 09:43


Машинист паровоза

Группа: Участник
Сообщений: 231



Ну Apollo , я могу тебе залить. Хотя Olegenty -прав, я бы тоже перелил бы все таблицы на SQL. Скорость и удобство возросли бы. А Apollo я использовал с dbf, особенно когда чюжие базы используют fox-кие индексы.
p.s. Лучше перелей на sql — таблицы.
AVC
Отправлено: 22.09.2005, 10:00


Ветеран

Группа: Модератор
Сообщений: 1583



Только на sql smile.gif
Лена
Отправлено: 22.09.2005, 10:02


Мастер участка

Группа: Участник
Сообщений: 501



Хорошо. Подскажите какую CУБД мне использовать?
Исходные данные:
Приложение использует MapX который использует для своих целей много таблиц DBF. Формат DBF таблиц менять нельзя. Таблицы как таковые должны быть в не прикосновенности. SQL запросов к таблицам в приложении нет.
C чего начать и на какую CУБД переходить?
Если это SQL СУБД, то мне, наверное, лучше использовать InterBase? Как организовать доступ к таблицам DBF не через BDE в моем случае?
AVC
Отправлено: 22.09.2005, 10:12


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Подскажите какую CУБД мне использовать?

Бесплатную СУБД среднего класса (FireBird, MySQL ...) С очень простым (до практически отсутствующим) администрированием. 48 таблиц это совсем не много. А что значит огромных (полей * записей)?
И очень желательно отказаться от BDE в пользу "прямых" компонентов.
olegenty
Отправлено: 22.09.2005, 10:19


Ветеран

Группа: Модератор
Сообщений: 2412



1. Из простых, но достаточно мощных СУБД, посоветовал бы Firebird 1.5.2 (тот же Interbase, да уже не тот). Идёшь на http://ibase.ru и находишь там дистрибутивы и исчерпывающее количество статей для изучения работы Firebird/Interbase. Firebird, в отличие от Interbase, бесплатен.
2. Если будет принято решение использовать именно эту СУБД, то идёшь на http://ibexpert.com и качаешь последнюю версию IBExpert ( http://www.ibexpert.com/download/ibet_2005....8.8.1_full.exe ). Для русских — утилита бесплатна. Это лучший менеджер для Interbase/Firebird/Yaffil из известных мне. Вплоть до того, что позаоляет отлаживать хранимые процедуры
3. Качаешь IBDataPump ( http://clevercomponents.com/downloads/data.../dpdownload.asp ), либо как автономное приложение, либо как Plugin к IBExpert (во втором случае нужно всего лишь скопировать скачанную DLL в папку Plugin(s) каталога, куда будет установлен IBExpert). Это тулза для заливки данных откуда угодно в БД Interbase/Firebird/Yaffil. При этом умеет лить как из BDE-Alias источника, так и посредством ADO (т.е. вообще откуда угодно). Бесплатен.
4. Компоненты доступа... если будешь пользоваться механизмами TMemTableEh + TXXXDataDriverEh, то качаешь UIB-компоненты, компилируешь и устанавливаешь dbExpress-драйвер для работы с Firebird 1.5 и работаешь через связку TSQLDataDriverEh + TMemTableEh. UIB — бесплатны. Качать тут ( http://www.progdigy.com/modules.php?name=UIB ). Если же не предполагаешь пользоваться этой связкой, то идёшь на http://devrace.com и качаешь FIBPlus — компоненты прямого доступа к Interbase/Firebird/Yaffil. Платные, но для русских 700р. за пачку + год бесплатных обновлений и техподдержки.

5. Разбираешься, задаёшь вопросы, наступает счастье.

Отредактировано olegenty — 22/09/2005, 11:25
Vlad
Отправлено: 22.09.2005, 10:43


Машинист паровоза

Группа: Участник
Сообщений: 231



Я бы поставил бы ms sql . Одна из причин — удобство администрирования, импорта.....хотя дело на любителя. 48 таблиц для него мелочь. У меня сейчас на одной только базе данных -2500 таблиц, и не че ! А баз несколько. biggrin.gif
olegenty
Отправлено: 22.09.2005, 10:47


Ветеран

Группа: Модератор
Сообщений: 2412



а я бы принципиально my sql не поставил — нет хранимых процедур и триггеров. другими словами, файл-серверная СУБД, практически эквивалент DBF. только чуть причёсанный.
Лена
Отправлено: 22.09.2005, 10:50


Мастер участка

Группа: Участник
Сообщений: 501



Спасибо olegenty!
С первыми двумя пунктами я знакома. Есть дистрибутивы и того и другого. Я книжку читала по Firebird в прошлом году. smile.gif
C третьим и четвертым пунктом буду разбираться. smile.gif
Как бы при использовании переноса IBDataPump все корректно перенеслось.

>А что значит огромных (полей * записей)

Просто много записей. Например, таблица с перечнем всех улиц и переулков Москвы. MapX берет информацию их этих таблиц для своих карт-слоев.
olegenty
Отправлено: 22.09.2005, 11:01


Ветеран

Группа: Модератор
Сообщений: 2412



если эта книжка была "Мир Interbase", то просто переложи её на свой рабочий стол, для придания статуса настольной.

перенесётся корректно, я с этой утилитой в своё время работал без проблем.
одно НО — таблицы сначала нужно создать в Firebird. структуру таблиц IBDataPump копировать не умеет.

Отредактировано olegenty — 22/09/2005, 12:03
Лена
Отправлено: 22.09.2005, 11:18


Мастер участка

Группа: Участник
Сообщений: 501



QUOTE (olegenty @ 22/09/2005, 11:01)
если эта книжка была "Мир Interbase", то просто переложи её на свой рабочий стол, для придания статуса настольной.

перенесётся корректно, я с этой утилитой в своё время работал без проблем.
одно НО — таблицы сначала нужно создать в Firebird. структуру таблиц IBDataPump копировать не умеет.

Именно эту книжку я и читала. Она у меня есть. Зелененькая такая. smile.gif

Вопрос в сторону от темы:
Я получила ответ на свой вопрос от тех.поддрежки MapX. Вот он:
Apparently, Find.Search has a problem when the field is defined as a float. I changed the field type to an integer and was able to find the record in the ID field with the 576090 value. Here's the code I used...

Я так поняла, что надо нужное мне поле таблицы поменять с float на int. Я открыла таблицу в DataBase Desktop, а там, напротив этого поля стоит тип Number, что и соответствует типу int! Мало того в этой таблице вообще нет колонок с типом Float. Ну и как понять их рекомендацию после этого? sad.gif
Gedeon
Отправлено: 22.09.2005, 13:11


Ветеран

Группа: Модератор
Сообщений: 1742



Лена, а у Вас в конторе может уже используются какие-нить сервера БД? И стоит посмотреть сначала на то, что есть дабы не плодить эти самые сервера?
olegenty
Отправлено: 22.09.2005, 13:24


Ветеран

Группа: Модератор
Сообщений: 2412



Gedeon прав, всё, что я говорил, относится к случаю, когда серверов нет. (My SQL не в счёт, если он и есть, его нужно проигнорировать).
AVC
Отправлено: 22.09.2005, 13:25


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Я открыла таблицу в DataBase Desktop, а там, напротив этого поля стоит тип Number, что и соответствует типу int

Какую таблицу? dbf?

Кстати, к вопросу топика, Interbase защищает паролем не данные, а доступ к серверу (если за последнее время ни чего не изменилось biggrin.gif ).

Отредактировано AVC — 22/09/2005, 12:44
Лена
Отправлено: 22.09.2005, 14:13


Мастер участка

Группа: Участник
Сообщений: 501



QUOTE (Gedeon @ 22/09/2005, 13:11)
Лена, а у Вас в конторе может уже используются какие-нить сервера БД? И стоит посмотреть сначала на то, что есть дабы не плодить эти самые сервера?

В конторе есть и сервер от Майкрософт и сервер FireBird.
Приложение, которое я делаю, будет выдаться конечному пользователю на его компьютер, который ни будет иметь никаких серверов. В папке будут лежать таблицы, которые будет использовать MapX для отображения нужной информации.
Хотелось бы, чтобы эти таблицы были не раскрываемы хотя бы для простых пользователей. Я так понимаю что это не возможно?
Другой путь, правильный, все таблицы у нас на сервере, а клиент, соединившись с ним по сети, будет иметь возможность получить данные для MapX. В этом случае таблицы можно закрыть на сервере.
Пока моя задача состоит в том, чтобы все работало на моем локальном компьютере. Только я подозреваю, что в конечном итоге руководство потребует скрыть таблицы от конечного пользователя. Исходя из этого, как мне начать действовать уже сейчас?

>Какую таблицу? dbf?

Да.
Я примерно разобралась, что имеет в виду тех. поддержка. Прилагаю рисунок. Правда, судя по окну сообщения на втором рисунке, в поле ID у меня большие числа и поэтому перевод в int в моем случае делать нельзя. Буду дальше разбираться с тех. поддержкой. smile.gif

Присоединить изображение

Присоединить изображение

Лена
Отправлено: 22.09.2005, 14:15


Мастер участка

Группа: Участник
Сообщений: 501



Ой, здесь так рисунок показывает во весь рост! smile.gif
На других форумах просто ссылка...
olegenty
Отправлено: 22.09.2005, 14:24


Ветеран

Группа: Модератор
Сообщений: 2412



ну если в конторе есть и MSSQL 2000, и Firebird — тут уж сама думай. можно и тем, и тем пользоваться. MSSQL посложнее, но на данный момент там возможностей побольше. Firebird пока попроще. Firebird можно без проблем ставить и на одно локальное клиентское место (Embedded версию), с MSQQL тут проблем побольше... Но даже если он стоит локально, если грамотно всё сделать, прямого доступа к таблицам и их структуре пользователь уже не получит.
Лена
Отправлено: 22.09.2005, 14:30


Мастер участка

Группа: Участник
Сообщений: 501



>Но даже если он стоит локально, если грамотно всё сделать, прямого доступа к таблицам и их структуре пользователь уже не получит.

Вот это супер!

Правда FireBird мне, конечно, лучше. Я с ним имела дело в прошлом году. Ладно будем думать. smile.gif
Больше спасибо за советы!
Vlad
Отправлено: 22.09.2005, 15:04


Машинист паровоза

Группа: Участник
Сообщений: 231



Лена! Не заморачивайся , кидай базу на MS SQL! Когда поработаешь с ним, то поймешь, что он во многих случаях лучше и удобнее чем firebird.
Надежность работы сервера большая. Я честно говоря не видел серьёзных баз данных которые бы крутились бы на firebird. Все используют Oracle и MS SQL. У firebird — своя ниша в применении. Кстати там и типов данных больше,...есть bigint,numeric,int,smallint,tinyint и куча других.
стр.: (2) < [1] 2 >
Вернуться в Работа с базами данных в C++Builder