![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Interbase: помогите разобраться с правами.
Schooler © (2005-12-08 11:42:00)Есть БД Interbase, содержит одну таблицу PERSONS (Owner: SYSDBA)
Далее создаю двух пользователей: MICHAELE, VLAD.(SYSDBA оставлен целым и невридимым)
Затем:
/* CLEAR USERS RIGHTS */
REVOKE ALL ON PERSONS FROM MICHAELE ^
REVOKE ALL ON PERSONS FROM VLAD ^
/* Role: UEDITOR,UVIEWER, Owner: SYSDBA */
CREATE ROLE UEDITOR ^
CREATE ROLE UVIEWER ^
GRANT UPDATE ON PERSONS TO UEDITOR ^
GRANT SELECT ON PERSONS TO UVIEWER ^
GRANT UEDITOR TO MICHAELE ^
GRANT UEDITOR TO VLAD ^
GRANT UVIEWER TO MICHAELE ^
GRANT UVIEWER TO VLAD ^
COMMIT WORK ^
...
1.Присоединяемся к базе:
User = 'MICHAELE' password '***' Role 'UVIEWER'
1.1.Делаем:
Select * From Persons
Все нормально: ожидаемая реакция
1.2.Делаем:
Update Persons
Set
Name = 'New Name'
Ошибка: Statement failed, SQLCODE = -551
Все нормально: ожидаемая реакция
2.Присоединяемся к базе:
User = 'MICHAELE' password '***' Role 'UEDITOR'
2.1.Делаем:
Select * From Persons
Ошибка: Statement failed, SQLCODE = -551
Все нормально: ожидаемая реакция
2.2.Делаем:
Update Persons
Set
Name = 'New Name'
Ошибка: Statement failed, SQLCODE = -551
ВОТ ЗДЕСЬ НЕ ПОНЯТНО !
Это надо понимать, что вместо моего
GRANT UPDATE ON PERSONS TO UEDITOR ^
Надо
GRANT SELECT, UPDATE ON PERSONS TO UEDITOR ^ ?
Johnmen (2005-12-08 12:35:00) [1]>Schooler (08.12.05 12:27) [3]
>Я правильно понимаю ?
Да.
Schooler (2005-12-08 12:27:00) [2]Еще вдогонку.
Т.е. когда делаю 2 (User = 'MICHAELE' password '***' Role 'UEDITOR'
), получается, что роль 'UEDITOR' не назначена для 'MICHAELE' и на самом деле я зашел в базу как 'MICHAELE' не с правами роли 'UEDITOR', а справами самого 'MICHAELE', которые , в свою очередь, были
REVOKE ALL ON PERSONS FROM MICHAELE.
Я правильно понимаю ?
Schooler (2005-12-08 12:19:00) [3]To Johnmen ©
Спасибо !
Johnmen (2005-12-08 11:50:00) [4]Это надо понимать так, что пользователю 'MICHAELE' последняя назначенная роль UVIEWER. Т.е. назначение ему роли UEDITOR уже перебито ролью UVIEWER.
GRANT UEDITOR TO MICHAELE ^
...
GRANT UVIEWER TO MICHAELE ^