Автор | Сообщение |
|
| |
Пост N: 1294
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.08.09 18:40. Заголовок: Вопрос о безопасности базы данных
Имеем сервер Novell 4.x + Ads for Novell На серваке лежит база (это и понятно) Есть основная программа работающая на рабочих станциях (писанная на Clipper) + 2 проги написанные на (X)harbour и работающие с той же базой данных и выполняющие свои специфические функции. Саму базу с сервера может получить любой злоумышленник , скажем конкурент , путем копирования. Как скрыть базу данных или скажем запретить ее копирование другими средствами ? PS Шифрование не предлагать !
|
|
|
Ответов - 12
[только новые]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.08.09 00:27. Заголовок: Dima пишет: Имеем с..
Dima пишет: цитата: | Имеем сервер Novell 4.x + Ads for Novell На серваке лежит база (это и понятно) Есть основная программа работающая на рабочих станциях (писанная на Clipper) + 2 проги написанные на (X)harbour и работающие с той же базой данных и выполняющие свои специфические функции. Саму базу с сервера может получить любой злоумышленник , скажем конкурент , путем копирования. Как скрыть базу данных или скажем запретить ее копирование другими средствами ? PS Шифрование не предлагать ! |
| Oracle
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.08.09 00:35. Заголовок: Гост пишет: Oracle ..
Гост пишет: Пардон! А што такое Clipper и (X)harbour ??? Dima пишет: цитата: | Шифрование не предлагать ! |
| Google не предлагать!
|
|
|
|
| постоянный участник
|
Пост N: 895
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.08.09 12:52. Заголовок: Dima пишет: Как скр..
Dima пишет: цитата: | Как скрыть базу данных или скажем запретить ее копирование другими средствами ? |
| Переводить ВСЕ на HARBOUR+ LETODB ! Сам маялся долго насчет этой проблемы !
|
|
|
|
| |
Пост N: 1295
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.08.09 19:00. Заголовок: Andrey А сколько по..
Andrey А сколько пользователей в сети у Вас которые юзают одну и ту же базу данных под LetoDb ? У нас 60. На данный момент в ряде баз 3 лимона записей в каждой.
|
|
|
|
| постоянный участник
|
Пост N: 898
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.08.09 19:53. Заголовок: Так по моему под ADS..
Так по моему под ADS можно назначить отдельный каталог (с базами) на сервере который обычный пользователь не видит !!! ADS сам занимается доступом к базам. И всех делов то...
|
|
|
|
| |
Пост N: 1296
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.08.09 09:19. Заголовок: Andrey пишет: Так п..
Andrey пишет: цитата: | Так по моему под ADS можно назначить отдельный каталог (с базами) на сервере который обычный пользователь не видит !!! |
| Да можно сделать средствами Novell , сняв атрибут FileScan на папке с базой и в программе установить AX_rightCheck(.f.) В этом случае все файловые функции будут работать не так как нужно :( Вот цитата из NG Вызов AX_RightsCheck( .F. ) приведет к тому, что доступ к любым новым открываемым рабочим областям будет происходить через Advantage server без проверки прав доступа к файлам/директориям. Это позволяет сетево- му администратору "спрятать" Xbase файлы данных от пользователей, ко- торые обращаются к данным не через Advantage-приложения. Xbase данные защищаются путем удаления всех прав доступа к директориям, в которых расположены файлы данных. Только Advantage-приложения, используя этот метод защиты смогут получить доступ к файлам данных. Advantage server будет создавать, открывать и/или обновлять "скрытые" файлы с правами "администратора". Замечание: Изменение метода защиты с помощью AX_RightsCheck() дейс- твует только на те рабочие области, которые были открыты или созданы после вызова этой функции. Замечание: Функции CA-Clipper, такие как FILE(), FOPEN() и FERASE() не являются функциями RDD. Поэтому они не способны получить права доступа Advantage Database Server. Следовательно, если системный ад- министратор удалит права доступа к директориям, эти функции могут ра- ботать не так, как ожидается. Замечание: SET PATH не будет действовать при установке метода защиты Advantage "не проверять права доступа". Если при создании или откры- тии файла не указано полного пути доступа и командой SET PATH указан путь, то путь указанный в SET PATH НЕ БУДЕТ учитываться при попытке открыть файл с установкой"не проверять права доступа". Путь, указан- ный в команде SET PATH будет учитываться при попытке открыть/создать файл с установкой "проверять права доступа" Замечание: При отключении проверки прав доступа вам может понадобить- ся указать директорию к местоположению семафорного файла связи между клиентом и сервером. Для дополнительной информации обратитесь к ваше- му руководству по Advantage server.
|
|
|
|
| |
Пост N: 44
Зарегистрирован: 19.12.06
|
|
Отправлено: 13.08.09 09:09. Заголовок: у меня лет 10, без п..
у меня лет 10, без проблем работали программы в режиме невидимости каталогов . Временные файлы нужно делать на локальном диске, а индексы создавать на станции администратора.
|
|
|
|
| |
Пост N: 1297
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.08.09 09:28. Заголовок: k_dima пишет: Време..
k_dima пишет: цитата: | Временные файлы нужно делать на локальном диске |
| Так и делаю. Как быть например с функцией File() ? В программе стоит проверка (при запуске) на наличие баз данных Примерный кусок кода if !file("test.dbf") dbcreate("test",{{"t1","c",1,0}}) endif Установки set path to dbf\ set default to dbf\ Понятно что эти установки нужно привести к полному пути , типа set path to n:\sklad\dbf\ set default to n:\sklad\dbf\ но это не повлияет на работу функции File()
|
|
|
|
| Администратор
|
Пост N: 1202
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.08.09 09:45. Заголовок: В Ace32/харборе есть..
В Ace32/харборе есть функция AdsCheckExistence У клиента для клиппера я прямого аналога не вижу. Можно попробовать функцию AX_GetDrive(). Если она вернет пустую строку, то файл не существует
|
|
|
|
| |
Пост N: 1298
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.08.09 09:50. Заголовок: Pasha Cпасибо , дум..
Pasha Cпасибо , думаю. Дело в том что эта задача должна работать как в серверном варианте так и в локальном. Сегодня так и работает. Под сервером RDDADS , локально RDDSIX
|
|
|
|
| Администратор
|
Пост N: 1203
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.08.09 09:57. Заголовок: Dima пишет: задача ..
Dima пишет: цитата: | задача должна работать как в серверном варианте так и в локальном. |
| Можно использовать такую функцию: Function TableExist(cName) Local lRet if RddName() = "SIXCDX" lRet := File(cName) else lRet := ! Empty(AX_GetDrive(cName)) endif Return lRet
|
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 09.07.08
|
|
Отправлено: 20.08.09 10:20. Заголовок: у меня сделано через..
у меня сделано через обработчик ошибок OldErrBlock:=ERRORBLOCK( {|o| BREAK(o)} ) BEGIN SEQUENCE dbUseArea(...) dbSetIndex(...) RECOVER USING objErr DiagOpenErr( objErr, .t. ) DiagErrMsg ( objErr ) ERRORBLOCK( OldErrBlock ) Return .F. END SEQUENCE ERRORBLOCK( OldErrBlock ) Return .T. Static Proc DiagOpenErr (o, lShared) Local NF If ValType(o)=='O' DO Case CASE !Empty(o:cargo) nError := o:cargo CASE o:osCode = 2 .and. o:genCode = 21 nError := ER_FILE_NOT_FOUND CASE o:osCode = 3 .and. o:genCode = 21 nError := ER_DIR_NOT_FOUND . . . Static Proc DiagErrMsg (o) Local NF If ValType(o)=='O' NF := AllTrim(o:FileName) EndIF If Empty(NF) NF := LastFileName EndIF DO Case CASE nError = ER_FILE_NOT_FOUND _ErrorMessage('Не найден файл '+NF) CASE nError = ER_DIR_NOT_FOUND _ErrorMessage('Не найдена директория '+NF) . . .
|
|
|
|