powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите разобраться с правами на системные таблицы
9 сообщений из 9, страница 1 из 1
Помогите разобраться с правами на системные таблицы
    #32085104
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется предоставить обычному пользователю (не SYSDBA) права на исполнение процедуры, которая напрямую добавляет и удаляет записи таблицы RDB$USER_PRIVILEGES.
От SYSDBA процедура исполняется корректно.

Самой процедуре права на указанные действия предоставлены.
Пользователю - на исполнение процедуры тоже.

Судя по сообщению об ошибке при добавлении и удалении записей таблицы RDB$USER_PRIVILEGES срабатывают системные триггеры, которые, видимо, должны производить действия с другими системными таблицами. Тело триггеров в IBExperte не видно, вероятно они хранятся только в компилированном виде.
??? Кто нибудь знает какими еще правами надо снабдить процедуру, либо где посмотреть содержание системных триггеров ???
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32085124
Привет!

Наверное, стоит открыть специальный форум "Как гарантированно огрести себе проблем".
И первым сообщением там будет пост о необходимости править системные таблицы в InterBase.

С уважением,
Алексей.
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32085137
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за совет. :-)
Но неужели там настолько все страшно сложно устроено, что проблемы будут гарантированы и от таких операций следует отказаться напрочь?
Извиняюсь за то, что похоже прошу потдверждения, уже раз прямо сказанного.
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32085182
Привет!

Не то чтобы сложно. Просто очень много зависимостей, которые определены не в системных таблицах и их саттелитах (не на уровне SQL, скажем так), а именно в исходном коде сервера. Фактически, системные таблицы - лишь проекция механизмов сервера на SQL. Гарантировать, что эта проекция 100% отображается в обе стороны - нельзя. Более того, есть сатья Чарли Каро по поводу обработки DDL - так вот, там прямо указано, что DDL не равен набору DML для модфикации системных таблиц.

Единственный гарантирующий отсутствие глюков и проблем способ общения с системными таблицами - это через DDL.

Да, я тоже изредка пользуюсь прямой модифкацией таблиц, но в основном это укладывается в 3 случая - 1) копирование прав пользователя (пример SQL-запроса есть в книге), 2) создание индексов на системные таблицы для ускорения операций с ними, что полезно при очень большом объеме метаданных в БД (пример скрипта есть на ibase.ru), 3) починка битой БД, когда важно вытащить данные, а на саму базу как целостный файл - начихать.

Поэтому всем рекомендую не лазать в системные таблицы с целью модфикации

С уважением,
Алексей
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32085298
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моя задача, как раз вроде бы укладывается в приведенные рамки, мне нужно автоматически копировать права одного пользователя другому. Проблема в том, что требуется это делать:
1. не от SYSDBA, а от простого пользователя
2. не прямым insert-ом, а через хранимую процедуру, чтобы этот простой пользователь ничего другого с RDB$USER_PRIVILEGES не вытворял
И вот какие же права надо дать этой хранимой процедуре?

И еще, корректно ли удаляются права пользователя по следующему запросу:
Код: plaintext
1.
DELETE from RDB$USER_PRIVILEGES a
 where a.RDB$USER='USER_NAME'

Торжественно клянусь по другим поводам системные таблицы прямо не беспокоить. ;-)
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32085315
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот прочитал:
http://www.cvalde.com/features/f5/new_error_codes.htm

isc_no_write_user_priv (335544742L). In IB4, clients were allowed to write directly to system table RDB$USER_PRIVILEGES that was new in v4 to manage SQL permissions instead of the old RDB$SECURITY_CLASSES table. Now, all operations are expected to happen through DDL commands GRANT and REVOKE.

Получается - зря я все это, и писать в USER_PRIVILEGES кроме SYSDBA никто не может.
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32085885
Привет!

Код: plaintext
Получается - зря я все это, и писать в USER_PRIVILEGES кроме SYSDBA никто не может.


Ну и слава богу, в общем-то :)

С Новым Годом!

Алексей.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите разобраться с правами на системные таблицы
    #32402152
SNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй с помощью комманд Grant и Reloke. Они позволяют изменят права не только админу. Но внимательно прочитай их описание, там есть свойство по которому пользователь может или нет передавать разрешение. А на прямую составлять запросы к системным таблицам не советую.
...
Рейтинг: 0 / 0
Помогите разобраться с правами на системные таблицы
    #32404539
KeepeR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПолучается - зря я все это, и писать в USER_PRIVILEGES кроме SYSDBA никто не может.

Н у если тока тебя устроит такой вариант - создаешь отдельного пользователя и передаешь ему права SYSDBA. Грубо говоря кланируешь SYSDBA

авторinsert into rdb$user_privileges
select '<user_name>',
rdb$grantor,
rdb$privilege,
rdb$grant_option,
rdb$relation_name,
rdb$field_name,
rdb$user_type,
rdb$object_type
from rdb$user_privileges where rdb$user = 'SYSDBA'
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите разобраться с правами на системные таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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