Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 3. Нет прав на таблицу у представления с вложенным запросом. / 3 сообщений из 3, страница 1 из 1
28.07.2016, 07:04
    #39281605
imkot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3. Нет прав на таблицу у представления с вложенным запросом.
Добрый день.

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

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

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

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

Пользователь не может выполнить 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
28.07.2016, 08:33
    #39281627
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3. Нет прав на таблицу у представления с вложенным запросом.
...
Рейтинг: 0 / 0
28.07.2016, 12:38
    #39281816
imkot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FB 3. Нет прав на таблицу у представления с вложенным запросом.
dimitr баг, уже исправлено

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


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