powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3. Нет прав на таблицу у представления с вложенным запросом.
3 сообщений из 3, страница 1 из 1
FB 3. Нет прав на таблицу у представления с вложенным запросом.
    #39281605
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Суть проблемы:
Пользователю назначена роль

Роли даны права на чтение из представления

Представлению даны права на чтение из таблицы

Представление содержит вложенный запрос к таблице

Пользователь не может выполнить select из представления

Данные по системе и Firebird
Код: plaintext
1.
2.
3.
4.
[kot@fb5 ~]$ uname -a
Linux fb5.ctmed.ru 3.8.13-118.4.2.el6uek.x86_64 #2 SMP Tue Mar 22 20:47:10 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux
[kot@fb5 ~]$ firebird -z
Firebird TCP/IP server version LI-V3.0.0.32483 Firebird 3.0

В конфигах Firebird
Код: plaintext
1.
2.
3.
AuthServer = Legacy_Auth, Srp, WinSspi
AuthClient = Legacy_Auth, Srp, WinSspi
UserManager = Legacy_UserManager

Пример для воспроизведения ошибки
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
$ isql-fb -q
SQL> create database 'fb5:/home/firebird/xxx.fdb' user 'sysdba' password '1234';
SQL> create table T1(F1 integer);
SQL> create view V1 as select F1, (select count(1) from T1) as CNT from T1;
SQL> insert into T1 values(1);
SQL> insert into T1 values(2);
SQL> commit;
SQL> create user user1 password 'user1';
SQL> create role role1;
SQL> grant role1 to user1;
SQL> grant select on T1 to V1;
SQL> grant select on V1 to role1;
SQL> select * from V1;

          F1                   CNT 
============ ===================== 
           1                     2 
           2                     2 

SQL> show grant role1;
GRANT ROLE1 TO USER1
SQL> show grant V1;
GRANT SELECT ON V1 TO ROLE ROLE1
SQL> show grant T1;
GRANT SELECT ON T1 TO USER V1
SQL> quit;

$ isql-fb -user user1 -password user1 -role role1 -s 3  fb5:/home/firebird/xxx.fdb
Database:  fb5:/home/firebird/xxx.fdb, User: user1, Role: ROLE1
SQL> select * from v1;
Statement failed, SQLSTATE = 28000
no permission for SELECT access to TABLE T1

SQL> show grant role1;
GRANT ROLE1 TO USER1
SQL> show grant T1;
GRANT SELECT ON T1 TO USER V1
SQL> show grant V1;
GRANT SELECT ON V1 TO ROLE ROLE1
SQL> select current_user, current_role from rdb$database;

USER                                                                                          ROLE                                                                                          
=============================================================================== =============================================================================== 
USER1                                                                                         ROLE1                                                                                         

SQL> quit;
$ 




Я что-то не нашел похожих проблем, может плохо искал. Это действительно баг? Может уже исправлено?
...
Рейтинг: 0 / 0
FB 3. Нет прав на таблицу у представления с вложенным запросом.
    #39281627
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
FB 3. Нет прав на таблицу у представления с вложенным запросом.
    #39281816
Фотография imkot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr баг, уже исправлено

Спасибо. Можно закрыть тему.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3. Нет прав на таблицу у представления с вложенным запросом.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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