Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / SA 12 и выше: Защита от стороннего досупа, как ? / 4 сообщений из 4, страница 1 из 1
19.05.2016, 11:01
    #39238873
Stalker4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SA 12 и выше: Защита от стороннего досупа, как ?
Hi All,

Есть классический Client-Server, т.е. пользователь с помощью программы по tcp/ip ходит к серверу БД (SA 12 или выше).
Когда пользователь работает с данными, то из программы на сервер посылаются sql-команды (insert, update, delete и т.п.). Соответственно в программе есть ограничения на то, с какими именно документами может работать пользователь.

Но есть проблема: она состоит в том, что пользователь-оператор используя свой логин может соединиться с БД не через мою программу, а через какую нибудь прогу умеющую работать с БД или хотя бы через тот же Sybase Central - и тогда он может обойти все ограничения на изменения данных и править любые документы.

Вопрос как это можно предотвратить ?

У меня пока есть всего два варианта: переход на трехзвеньевку (что бы работать с БД можно было только через сервер приложений) или всю работу по изменению данных с соответствующими проверками перевести в SP и отобрать права на прямое изменение данных в таблицах (тогда даже в случае вызова такой SP из сторонних программ он сможет менять данные только в соответствии с логином текущего пользователя (своим логином) и не сможет менять чужие данные) .

Может есть еще какие то варианты решения этой проблемы ?
Скажем какие то спец. фичи SA 12 или выше ?

То есть я хочу запретить работу с БД любым сторонним программам.
...
Рейтинг: 0 / 0
19.05.2016, 20:08
    #39239522
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SA 12 и выше: Защита от стороннего досупа, как ?
Оба предложенных варианта вполне правильные и рабочие. Они конечно потребуют сильного редизайна нынешней системы, но зато они хорошо известны и есть много книг по ним.

Но есть и третий вариант. Он не потребует переписывания клиентов, и позволит более-менее сохранить текущую структуру БД, но...
Переименовываешь все таблицы в что-то типа "<oldname>_table". Создаешь на их месте (со старыми именами) представления типа
Код: sql
1.
2.
3.
create view ABCD as
select * from ABCD_table
where ABCD_row_allowed_for(ABCD_table.pk, user_name())="Y"


Здесь ABCD_row_allowed_for() это собственная функция разрешающая или запрещающая данному юзеру видеть конкретную строку из таблицы. Это может быть и просто join на какую-нибудь таблицу авторизации.
Потом вешаешь на эти представления instead of триггеры в которых уже и обновляешь базовые таблицы.
Ну и естественно, никто кроме DBA не может смотреть/изменять базовые таблицы, а юзерам можно работать только с представлениями.
...
Рейтинг: 0 / 0
20.05.2016, 14:51
    #39240093
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SA 12 и выше: Защита от стороннего досупа, как ?
Stalker4То есть я хочу запретить работу с БД любым сторонним программам.
Если к серверу доступ только у легитимных пользователей, то можно эккаунты в Sybase заводить и управлять ими через вашу программу.
Идея в шифровании пароля вашей прогой, когда будете заводить пользователей.
Пример: пользователь заводит/меняет свой пароль через вашу прогу и она заносит уже шифрованный. В итоге, через интерфейс пользователь зайти может, а напрямую в Sybase - пароль не подходит.
...
Рейтинг: 0 / 0
24.05.2016, 12:12
    #39242071
Stalker4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SA 12 и выше: Защита от стороннего досупа, как ?
komradStalker4То есть я хочу запретить работу с БД любым сторонним программам.
Если к серверу доступ только у легитимных пользователей, то можно эккаунты в Sybase заводить и управлять ими через вашу программу.
Идея в шифровании пароля вашей прогой, когда будете заводить пользователей.
Пример: пользователь заводит/меняет свой пароль через вашу прогу и она заносит уже шифрованный. В итоге, через интерфейс пользователь зайти может, а напрямую в Sybase - пароль не подходит.
Шикарная идея, и как это я сам до нее не додумался.

Думаю ее реализация + изменения данных только через SP существенно усилит защиту данных от сторонних изменений.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / SA 12 и выше: Защита от стороннего досупа, как ? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]