On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
администратор




Пост N: 1294
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.08.09 18:40. Заголовок: Вопрос о безопасности базы данных


Имеем сервер Novell 4.x + Ads for Novell
На серваке лежит база (это и понятно)
Есть основная программа работающая на рабочих станциях (писанная на Clipper) + 2 проги написанные
на (X)harbour и работающие с той же базой данных и выполняющие свои специфические функции.
Саму базу с сервера может получить любой злоумышленник , скажем конкурент , путем копирования.
Как скрыть базу данных или скажем запретить ее копирование другими средствами ?

PS
Шифрование не предлагать !

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 12 [только новые]





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 11.08.09 00:27. Заголовок: Dima пишет: Имеем с..


Dima пишет:

 цитата:
Имеем сервер Novell 4.x + Ads for Novell
На серваке лежит база (это и понятно)
Есть основная программа работающая на рабочих станциях (писанная на Clipper) + 2 проги написанные
на (X)harbour и работающие с той же базой данных и выполняющие свои специфические функции.
Саму базу с сервера может получить любой злоумышленник , скажем конкурент , путем копирования.
Как скрыть базу данных или скажем запретить ее копирование другими средствами ?

PS
Шифрование не предлагать !




Oracle

Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 11.08.09 00:35. Заголовок: Гост пишет: Oracle ..


Гост пишет:

 цитата:
Oracle



Пардон! А што такое Clipper и (X)harbour ???

Dima пишет:

 цитата:
Шифрование не предлагать !



Google не предлагать!

Спасибо: 0 
Цитата Ответить
постоянный участник




Пост N: 895
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.08.09 12:52. Заголовок: Dima пишет: Как скр..


Dima пишет:

 цитата:
Как скрыть базу данных или скажем запретить ее копирование другими средствами ?



Переводить ВСЕ на HARBOUR+ LETODB !

Сам маялся долго насчет этой проблемы !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1295
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.08.09 19:00. Заголовок: Andrey А сколько по..


Andrey
А сколько пользователей в сети у Вас которые юзают одну и ту же базу данных под LetoDb ?
У нас 60.
На данный момент в ряде баз 3 лимона записей в каждой.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 898
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.08.09 19:53. Заголовок: Так по моему под ADS..


Так по моему под ADS можно назначить отдельный каталог (с базами) на сервере который обычный пользователь не видит !!!
ADS сам занимается доступом к базам.
И всех делов то...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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.



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 44
Зарегистрирован: 19.12.06
ссылка на сообщение  Отправлено: 13.08.09 09:09. Заголовок: у меня лет 10, без п..


у меня лет 10, без проблем работали программы в режиме невидимости каталогов .
Временные файлы нужно делать на локальном диске, а индексы создавать на станции администратора.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост 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()


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1202
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.08.09 09:45. Заголовок: В Ace32/харборе есть..


В Ace32/харборе есть функция AdsCheckExistence
У клиента для клиппера я прямого аналога не вижу.
Можно попробовать функцию AX_GetDrive(). Если она вернет пустую строку, то файл не существует

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1298
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.08.09 09:50. Заголовок: Pasha Cпасибо , дум..


Pasha
Cпасибо , думаю.
Дело в том что эта задача должна работать как в серверном варианте так и в локальном.
Сегодня так и работает.
Под сервером RDDADS , локально RDDSIX

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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)
. . .

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 35
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет