|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Доброе время суток, получить права надо для проверки возможности доступа, изменения итп до обращения к таблице или процедуре. Чёт никак не найду в доке. Направьте. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 22:28 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Препарируешь нужный запрос, ловишь ошибку недостачи прав. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 22:31 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovПрепарируешь нужный запрос, ловишь ошибку недостачи прав. когда доходит до запроса предполагается что уже какое то действие на клиенте уже произведено (напр. заполнена маска и данные в запросе посланы). Хотелось бы просто не дать открыть такую маску. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 22:39 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, а где искал. Попробуй в описании системных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 22:42 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, а где искал. Попробуй в описании системных таблиц. я так понимаю, напрямую из таблиц безопасности, простым запросом, получить нельзя т.к. даже SYSADBA доступа к ним напрямую не имеет. Должна быть какая то команда. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 22:46 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
вот походу RDB$USER_PRIVILEGES ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 22:54 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoкогда доходит до запроса предполагается что уже какое то действие на клиенте уже произведено Ты эта... почувствуй разницу между выполнением запроса и его препарированием. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:04 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail Tchervonenkoкогда доходит до запроса предполагается что уже какое то действие на клиенте уже произведено Ты эта... почувствуй разницу между выполнением запроса и его препарированием. я знаю эту разницу :), но хочется правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:09 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, если ты про таблицы SEC$ то в них права не хранятся, там только отображение сведений о пользователях, да и вообще это виртуальные таблицы. А права за исключением CREATE DATABASE хранятся в самой БД в таблице RDB$USER_PRIVILEGES ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:17 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, если ты про таблицы SEC$ то в них права не хранятся, там только отображение сведений о пользователях, да и вообще это виртуальные таблицы. А права за исключением CREATE DATABASE хранятся в самой БД в таблице RDB$USER_PRIVILEGES да, уже разобрался, вот уже наваял но ещё не проверил Код: sql 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. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:35 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoя так понимаю, напрямую из таблиц безопасности, простым запросом, получить нельзяПростым - нет, права могут быть даны опосредованно. Mikhail Tchervonenkoт.к. даже SYSADBA доступа к ним напрямую не имеетЧитать - можно. Но не нужно. Препарируй запрос, как уже посоветовали. Да хоть на старте программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:40 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
hvlad, зачем препарировать, если к таблице надо выяснить права доступа то что бы выяснить все нужные надо препарировать несколько запросов (select, update, insert ....) а из RDB$USER_PRIVILEGES можно получить всё одним запросом. или проблема в том что на чтение RDB$USER_PRIVILEGES привилегию имеет только SYSDBA и дать на неё привилегию чтения всем плохая или невозможная идея? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2017, 23:50 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoесли к таблице надо выяснить права доступа то что бы выяснить все нужные надо препарировать несколько запросов (select, update, insert ....) А ты хочешь собрать вместе права текущего пользователя, текущей роли, всех ролей, грантованных этой роли, а до кучи ещё и PUBLIC-а всего одним запросом?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:02 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, проверил, читать может любой успешно вошедший. Соотв встаёт вопрс почему через препарирование а не как по идее правильно. Скорость? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:04 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail Tchervonenkoесли к таблице надо выяснить права доступа то что бы выяснить все нужные надо препарировать несколько запросов (select, update, insert ....) А ты хочешь собрать вместе права текущего пользователя, текущей роли, всех ролей, грантованных этой роли, а до кучи ещё и PUBLIC-а всего одним запросом?.. только для определённого объекта (таблицы/процедуры/... ) дабы выяснить максимально возможные и соотв. построить интерфейс в форме (скрыть что недоступно). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:06 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoтолько для определённого объекта Права на определённый объект могут быть выданы всему вышеперечисленному и ещё другим объектам. То, что они не выданы пользователю прямо, ещё не значит, что он не может объект использовать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:10 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoдабы выяснить максимально возможные и соотв. построить интерфейс в форме (скрыть что недоступно).Не нужно полномочия прикладного уровня заменять SQL полномочиями. Это не работает нигде, кроме hello world. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:39 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovMikhail Tchervonenkoтолько для определённого объекта Права на определённый объект могут быть выданы всему вышеперечисленному и ещё другим объектам. То, что они не выданы пользователю прямо, ещё не значит, что он не может объект использовать. согласен, но у меня частный случай, я раздаю привилегии только через роли, потому такой код будет работать Код: sql 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. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
проверил, работает как в моём случае как мне нужно. Если параметр пользователь оставить пустым или передать в него не пользователя а роль. Можно конечно усложнить и пройтись по правам роли на основе переданного пользователя но мне в данном проекте это уже не нужно думаю. Ходя может завтра допишу на всякий случай. Всем спокойной ночи и спасибо за участие. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:45 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
hvladMikhail Tchervonenkoдабы выяснить максимально возможные и соотв. построить интерфейс в форме (скрыть что недоступно).Не нужно полномочия прикладного уровня заменять SQL полномочиями. Это не работает нигде, кроме hello world. пока не вижу никаких тому противопоказаний. Если база выстроена правильно то её безопасность вполне может отвечать логике доступа на уровне форм. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 00:50 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
hvlad, единственное неудобство что при входе пользователем надо указывать его роль. Есть какая то возможность назначать роль по умолчанию для пользователя? дабы при входе без указания роли бралась какая то назначенная по умолчанию? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 12:14 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, в 4.0 есть роли по умолчанию. Их права суммируются. Короче они что-то вроде групп. В 3.0 только хаками. Я один такой придумал, достаточно в ON CONNECT триггере выполнить SET ROLE через EXECUTE STATEMENT ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 12:18 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Симонов ДенисMikhail Tchervonenko, в 4.0 есть роли по умолчанию. Их права суммируются. Короче они что-то вроде групп. В 3.0 только хаками. Я один такой придумал, достаточно в ON CONNECT триггере выполнить SET ROLE через EXECUTE STATEMENT спасибо за идею, я предполагал для всех пользователей вход по какой то минимальной по правам роли и потом делать SET ROLE, но через ON CONNECT выглядит ещё лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 12:25 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenkoединственное неудобство что при входе пользователем надо указывать его роль.Чтим стандарт. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 12:26 |
|
Как правильно получить права пользователя/роли к конкретной таблице/процедуре?
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ один такой придумал, достаточно в ON CONNECT триггере выполнить SET ROLE через EXECUTE STATEMENTХацкер :) SQL роли не являются группами прав ! Они являются ролью приложения , потому и определяются приложением. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2017, 12:27 |
|
|
start [/forum/topic.php?fid=40&fpage=47&tid=1561662]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
others: | 288ms |
total: | 472ms |
0 / 0 |