роли соединение и доступ к таблице

Как защититься от хаков, спрятать БД и прочие премудрости и настройки

Модератор: kdv

Ответить
zva
Сообщения: 4
Зарегистрирован: 18 окт 2012, 14:05

роли соединение и доступ к таблице

Сообщение zva » 18 окт 2012, 16:50

Имеется пользователь testuser.
Create role myrole;
Commit;
Grant all on test to myrole;
Grant myrole to testuser;
Connect ‘d:\basaOfData\bd.gdb’ user ‘testuser’ password ‘test’ role ‘myrole’;
Database: ‘d:\basaOfData\bd.gdb’, user testuser, role: myrole
Select * from test;

Statement failed, SQLCODE = -551

no permission for read/select access to table TEST

Выполнив запрос от sysdba

Select rdb@privilege, rdb@user from rdb$user_privileges where rdb$user = ‘TESTUSER’;

Получаю : M TESTUSER


Выполнив запрос от sysdba

Select rdb@privilege, rdb@user from rdb$user_privileges where rdb$user = ‘MYROLE’;

Получаю :
S MYROLE
U MYROLE
I MYROLE
D MYROLE
R MYROLE

почему нет разрешения?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: роли соединение и доступ к таблице

Сообщение hvlad » 18 окт 2012, 17:50

Код: Выделить всё

Grant all on test to ROLE myrole;

zva
Сообщения: 4
Зарегистрирован: 18 окт 2012, 14:05

Re: роли соединение и доступ к таблице

Сообщение zva » 19 окт 2012, 11:54

Drop role myrole;
Commit;
Create role myrole;
Commit;
Grant all on test to ROLE myrole;
Statement faild, SQLCODE = -104

Dynamic SQL Error
-SQL error code = -104
-Token unknown – line 1,char 21
-ROLE

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: роли соединение и доступ к таблице

Сообщение hvlad » 19 окт 2012, 15:44

А у меня работает. Как и должно.

1. Какая версия сервера ?
2. Полный результат запроса

Код: Выделить всё

SELECT * FROM RDB$USER_PRIVILEGES WHERE RDB$USER = 'MYROLE'

zva
Сообщения: 4
Зарегистрирован: 18 окт 2012, 14:05

Re: роли соединение и доступ к таблице

Сообщение zva » 20 окт 2012, 20:29

Версия Interbase 7.5

В первом сообщении я все описал.
Вы посоветовали уточнить назначение прав для пользователя, однако, как
я показал во втором сообщении это вызвало исключение с кодом ошибки
-104. Таким образом результат остается прежним, именно, что при подсоединении к базе данных с ролью не действуют разрешения назначенные роли. При обращении к таблице базы данных имею
Select * from test;

Statement failed, SQLCODE = -551

no permission for read/select access to table TEST

При обращении к системной таблице, уже от sysdba, имею

Select rdb@privilege, rdb@user from rdb$user_privileges where rdb$user = ‘TESTUSER’;

Получаю : M TESTUSER (почему rdb@privilege = M? и что это означает)


Выполнив запрос, также от sysdba имею

Select rdb@privilege, rdb@user from rdb$user_privileges where rdb$user = ‘MYROLE’;

Получаю :
S MYROLE
U MYROLE
I MYROLE
D MYROLE
R MYROLE

Как будто все верно, но результата нет.

Если разрешения для таблицы назначить непосредственно пользователю, то результат, как и должен быть соответствует запросу.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: роли соединение и доступ к таблице

Сообщение kdv » 22 окт 2012, 11:07

порядок действий
1. создать роль
2. включить в нее пользователя
3. дать роли права.

M - это membership. Тут должно быть все расписано:
http://www.ibase.ru/devinfo/sqlroles.htm

ваш пример повторил на IB 7.5 на employee.gdb, все работает
- убрал права PUBLIC на COUNTRY и EMPLOYEE
- create role MYROLE
- grant myrole to dima;
- grant all on employee to myrole

затем коннект под dima с ролью myrole. ОК.
select * from country - ошибка, нет прав
select * from employee - нет ошибки.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: роли соединение и доступ к таблице

Сообщение hvlad » 22 окт 2012, 12:50

zva писал(а):Версия Interbase 7.5
Ну так с этого нужно было начинать.
Всегда
zva писал(а):Select rdb@privilege, rdb@user from rdb$user_privileges where rdb$user = ‘TESTUSER’;
Я не просил этот запрос.
Впрочем, для IB это уже не важно.

zva
Сообщения: 4
Зарегистрирован: 18 окт 2012, 14:05

Re: роли соединение и доступ к таблице

Сообщение zva » 22 окт 2012, 14:04

Спасибо всем!

Ответить