Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизСоздатель базы Найти похожие ветки
← →
juice © (2005-05-16 17:21) [0]Как узнать имя поьзователя который создал базу данных Firebird ?
← →
juice © (2005-05-16 17:22) [1]Может в IB Expert"e это есть ?
← →
DSKalugin © (2005-05-16 18:12) [2]загляни в скрипт создания, который можно просмотреть ИБЭкспертом и увидишь чтото типа
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE "P4:C:\ShopDB\isautostar.fdb"
USER "DSKALUGIN" PASSWORD "*********"
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
откуда ясно что создатель - я
← →
juice © (2005-05-16 18:53) [3]Сорри, не нахожу такого. ожет у вас версия выше ?
← →
DSKalugin © (2005-05-16 19:49) [4]Версию я сегодня обновил до последней, но не в этом дело
Смотри пункт меню "Инструменты" - "Извлечение метаданных"
все не извлекай, а только скрипт создания БД достаточно в буффер обмена извлеч
← →
Zacho © (2005-05-16 19:54) [5]juice © (16.05.05 17:21)
Насколько я знаю, никак. Да и зачем ?
Впрочем, могу и ошибаться.
DSKalugin © (16.05.05 18:12) [2]
Это прикол такой что-ли ? Несмешно.
← →
Zacho © (2005-05-16 19:55) [6]DSKalugin © (16.05.05 19:49) [4]
Блин, в этом скрипте ты увидишь имя, с которым ты залогинился к базе, а вовсе не имя её создателя.
← →
-SeM- (2005-05-17 09:50) [7]2juice
SELECT DISTINCT RDB$USER FROM RDB$USER_PRIVILEGES
WHERE RDB$USER=RDB$GRANTOR AND RDB$RELATION_NAME="RDB$ROLES"
← →
Zacho © (2005-05-17 12:55) [8]-SeM- (17.05.05 9:50) [7]
Интересное решение, мне даже в голову не пришло. Возьму на заметку.
Любопытно, а могут ли быть случаи, в которых оно окажется не верным ? Естественно, исключая "ручной" апдейт системных таблиц.
← →
-SeM- (2005-05-17 13:19) [9]Zacho © (17.05.05 12:55) [8]
Этим запросом мы можем получить создателя любой таблицы. В данном случае рассматриваем таблицу RDB$ROLES, которая появляется только при создании базы. Т.е. тот кто создал таблицу - тот и есть создатель базы.
"Ручной" апдейт исключается - попробуй (даже под создателем) изменить поле RDB$GRANTOR - "action cancelled by trigger (0) to preserve data integrity.
cannot modify an existing user privilege". Есть другой вариант?
← →
Johnmen © (2005-05-17 13:22) [10]Да, интересное решение. Респект.
Один момент только (проверять не буду) - после b/r со сменой владельца, что покажет ?
← →
-SeM- (2005-05-17 13:33) [11]Johnmen © (17.05.05 13:22) [10]
Только что проверил.
Restore под создателем, backup - SYSDBA. Запрос возвращает SYSDBA, что и требовалось доказать :)
ЗЫ Маленькое уточнение - запросом можно узнать создателя не только таблиц, но и просмотров, и ХП.
← →
Johnmen © (2005-05-17 13:39) [12]>-SeM- (17.05.05 13:33) [11]
Вобщем-то так и д.б. Мой вопрос был несколько глуп, если подумать.
Для не до конца понятной самому себе логике, я бы см. RDB$DATABASE
← →
Zacho © (2005-05-17 13:41) [13]Johnmen © (17.05.05 13:39) [12]
А при чём здесь RDB$DATABASE ?
← →
-SeM- (2005-05-17 13:44) [14]Johnmen © (17.05.05 13:39) [12]
> я бы см. RDB$DATABASE
Ан нет ее там. Из системных только RDB$ROLES, остальные созданные пользователями.
← →
Johnmen © (2005-05-17 14:29) [15]Да. Интересное "явление"...
Хотя, опять же, слегка подумав, можно примерно понять, почему.
← →
-SeM- (2005-05-17 15:34) [16]Есть дыра :(
Таблица RDB$USER_PRIVILEGES не дает себя редактировать, но можно добавлять, удалять записи и после таких манипуляций мой совет может дать не верный ответ. Увы...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.049 c