Откуда SYSDBA в БД, созданной другим пользователем?
Модератор: kdv
-
- Сообщения: 19
- Зарегистрирован: 02 авг 2005, 18:53
Откуда SYSDBA в БД, созданной другим пользователем?
FB 1.5.2 Embedded
Создаю БД от имени пользователя USER1. В бинарнике базы вижу кучу мест со строкой SYSDBA. Откуда он там взялся? И как от него избавиться?
Создаю БД от имени пользователя USER1. В бинарнике базы вижу кучу мест со строкой SYSDBA. Откуда он там взялся? И как от него избавиться?
Дим, я не шибко большой знаток embedded, но берёт сомнение насчёт "не можешь". Имхо по причине отстутствия security.fdb ему просто должно быть пофиг, есть такой юзер или нет - натыкает owner в системные таблицы какого велено, ни о чём не думая, и всё. Это просто логично. А слово SYSDBA есть в любой базе, созданной от кого угодно и избавляться от него я бы не советовал Потому как оно присутствует в BLR системных триггеров...kdv писал(а):никак не избавится. для embedded вообще нет никаких юзеров, потому что нет security.fdb. Так что "от имени USER1" ты базу создать "не можешь", потому что такого юзера нигде нет.
-
- Сообщения: 19
- Зарегистрирован: 02 авг 2005, 18:53
-
- Сообщения: 19
- Зарегистрирован: 02 авг 2005, 18:53
я потому в кавычках и написал. То есть, ембеддеду покласть на юзеров. Поэтому "создаю базу от имени user1" - фикция. Где он, этот user1, у embedded-то?Merlin писал(а):но берёт сомнение насчёт "не можешь"
натюрлих Якамуто читай по губам - Embedded вообще игнорирует пользователей и права пользователей. Потому что пользователи у обычного сервера отслеживаются через security.fdb (fb1.5), isc4.gdb (ib/fb) или admin.ib (ib7.0). А у embedded этот файл где??? Где он будет пользователей хранить? В самой базе? А нету еще такого механизма в FB. Да и даже если взять IB 7.5 с EUA, то и там без центральной admin.ib это не работает. (www.ibase.ru/devinfo/ib75eua.htmDesdechado писал(а):Ведь если я удалю пользователя SYSDBA в неEmbedded-версии, подсуну туда эту БД, созданную в Embedded, то по идее SYSDBA не должен иметь возможности подключиться к БД.
И даже если НА ОБЫЧНОМ сервере создашь БД от имени Вася, а потом перенесешь эту БД на другой сервер, то на нем SYSDBA все равно СМОЖЕТ к ней подключиться, просто потому, что для SYSDBA права в базе данных НЕ ПРОВЕРЯЮТСЯ.
Код: Выделить всё
if USER = SYSDBA then
IgnoreRights
else
CheckRights(USER)
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05