Права пользователей на удаление/создание пользователей

Как защититься от хаков, спрятать БД и прочие премудрости и настройки

Модератор: kdv

Ответить
veart
Сообщения: 29
Зарегистрирован: 25 янв 2006, 09:39

Права пользователей на удаление/создание пользователей

Сообщение veart » 25 янв 2006, 09:48

Туплю не по детски...
Админ (пусть SYSDBA) создает пользователей на сервере.
Потом самый лошарый юзер заходит на сервер и удаляет всех пользователей, каких увидит (ну, пусть кроме SYSDBA).
Это так и должно быть или я чего-то не дочитал?
Нигде не нашел назначение каких-либо прав у пользователей на создание/изменение/удаление других пользователей.

Внутри баз все понятно - WIHT GRAND, WITH ADMIN OPTION, а на серваке!!!!???

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 янв 2006, 10:10

www.ibase.ru/devinfo/sqlroles.htm
Потом самый лошарый юзер заходит на сервер и удаляет всех пользователей, каких увидит
прочитай по ссылке, и потом скажи себе - КАК он это сделает?
Нигде не нашел назначение каких-либо прав у пользователей на создание/изменение/удаление других пользователей.
потому что их вообще нет, ни у кого кроме SYSDBA.

veart
Сообщения: 29
Зарегистрирован: 25 янв 2006, 09:39

Сообщение veart » 25 янв 2006, 10:29

Я читал эту статью, и это читал:

Только SYSDBA может добавлять, изменять и удалять других пользователей.


Теперь по порядку:
Запускаю IBExpert. Кликаю менеджер пользователей.
Захожу под SSYSDBA.
Добавляю 2 пользователей.
Закрываю.
Захожу опять в менеджер, теперь под созданым юзером - Lox.
Всех вижу, и благополучно удаляю, включая себя.

Думал может IBExpert косячит. Написал прогу с компонентом TIBSecurityService (Builder) - проделал те же операции.

Ничего не понимаю. Понятно, что кто-то где-то тупит.... может и я.
Может это как-то связано с опциями при установке Firebird (Client, Superserver или как там)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 янв 2006, 11:08

у функций сервисов для работы с пользователями требуется передавать имя SYSDBA и пароль. Если ты его и передаешь, хотя зашел под пользователем Lox, то соответственно удаление идет от имени SYSDBA.

В TIBSecurityService.SystemUserName у тебя кто прописан?

veart
Сообщения: 29
Зарегистрирован: 25 янв 2006, 09:39

Сообщение veart » 25 янв 2006, 11:22

TIBSecurityService нет SystemUserName, есть просто UserName - оно пустое и Params пустые. LoginPrompt - включено. Только через него указывается имя и пароль. По идее получить другое имя или пароль он никак не может.
Фишка в том что в IBExpert также все удаляется с чужих имен. И на другом компе и на удаленном сервере могу.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 25 янв 2006, 13:14

А в винду залогинен как администратор? Тогда ничего удивительного: админ автоматически имеет SYSDBA привилегии.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 янв 2006, 16:08

TIBSecurityService нет SystemUserName
что значит "нет"? Нет или не заполнено? Почему у меня есть, а у тебя - нет?
Давай-ка
1. версию IB/FB
2. версию Delphi
3. версию IBX.

насчет IBE - действительно удаляет, причем через Services API, каким образом - не знаю. Services API не должно давать удалять, если не указан SYSDBA.
Фикус интересный, я проверю в IBX.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 янв 2006, 16:26

короче, причина проблемы - в старой версии security.fdb. Если работать с FB 1.5.2 и взять security.fdb из дистрибутива, то управлять пользователями может только SYSDBA.

Ответить