Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
1) Как настроить права пользователя, чтобы он мог выполнять SQL выражения для таблиц из области %SYS? Выполнение запроса "SELECT * FROM %Library.SysLogTable" удалось добиться только если у пользователя есть роль "%All". Самое интересное, что при попытке дать доступ к этой таблице через "[SQL Tables]" в портале управления, система отчитывается об успешном выполнении операции, но таблица так и не добавляется. Почему так происходит? 2) Имеется csp-приложение, в котором пользователь авторизован как UnknownUser. На одной из страниц выполняется метод Код: plaintext Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 3) Возможно ли определение пользователя с ролью "%All" таким образом, чтобы ему был недоступен портал управления, студия и терминал, но выполнение Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2007, 09:41 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
По пункту 2: оказалось, что для програмного изменения переменной $ROLES, пользователю как раз нужен ресурс %DB_CACHESYS с возможностью записи, что по-моему не очень хорошо. По пункту 3: как я понял такое не возможно, пользователь с ролью %All имеет все права и ограничить их кроме как отключить учётную запись никак нельзя. Первый вопрос остаётся в силе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2007, 11:51 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
Для того, чтобы Ваш запрос выполнился SELECT * FROM %Library.SysLogTable необходимо прописать привилегии пользователя на доступ к таблице %Library.SysLogTable В настройках безопасности в SMP [Security Managment]->[User]->[Edit User] Там есть такая вкладка SQL Tables. Выбираешь схему %Library.SysLogTable и будет тебе счастье. Роль пользователя у меня была %Development,%SQL,%DB_CACHESYS хотя можно сделать свою, ограничив его в правах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 05:05 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
CJIECAPb По пункту 3: как я понял такое не возможно, пользователь с ролью %All имеет все права и ограничить их кроме как отключить учётную запись никак нельзя. Вообще, такое сделать можно. 1. Создается роль, role1 %DB_%DEFAULT %DB_CACHESYS %DB_USER %Development %Service_Console %Service_Terminal 2. Создается пользователь test1 В настройках пользователя Default Tag^Routine указывается рутина. В нужной области создается рутина, которая указана, а в данной рутине можно написать любой код. У пользователя нет ресурса %Service_CSP, поэтому он не может попасть в SMP В терминале он не сможет запустить ничего другого, кроме указанной рутины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 05:51 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
Peter ZarubinДля того, чтобы Ваш запрос выполнился SELECT * FROM %Library.SysLogTable необходимо прописать привилегии пользователя на доступ к таблице %Library.SysLogTable В настройках безопасности в SMP [Security Managment]->[User]->[Edit User] Там есть такая вкладка SQL Tables. Выбираешь схему %Library.SysLogTable и будет тебе счастье. Роль пользователя у меня была %Development,%SQL,%DB_CACHESYS хотя можно сделать свою, ограничив его в правах. Дык я так и делаю. В том то и проблема: после добавления таблицы каша говорит "Modification saved.", но в спике эта таблица так и не появляется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 08:57 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
CJIECAPb Дык я так и делаю. В том то и проблема: после добавления таблицы каша говорит "Modification saved.", но в спике эта таблица так и не появляется... То, что изменения(при назначении привилегий на схемы в %SYS) не отображаются в SMP - это баг каше (об этом я говорил в Support) Но, в действительности, все назначенные привилегии работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 09:05 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
Немного разобрался. Действительно, привилегия действует. Проблема как оказалось связана с тем, что в приложении я выполняю этот запрос не в области "%SYS". Как быть в этом случае? Как предоставить привелегии для таблиц смаппированных из "%SYS"? Конечно перед запросом можно выполнять zn "%SYS" но меня это не устраивает, т.к. запрос на самом деле прописывается не мной, а генерируется давно написанной и отлаженной компонентой, внутрь которой не очень хочется лезть, кроме того в этом случае встаёт проблема выполнения более сложных запросов, в которых фигурируют как таблицы из текущей области, так и из области "%SYS". Есть идеи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 09:45 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
CJIECAPbНемного разобрался. Действительно, привилегия действует. Проблема как оказалось связана с тем, что в приложении я выполняю этот запрос не в области "%SYS". Как быть в этом случае? Как предоставить привелегии для таблиц смаппированных из "%SYS"? Конечно перед запросом можно выполнять zn "%SYS" но меня это не устраивает, т.к. запрос на самом деле прописывается не мной, а генерируется давно написанной и отлаженной компонентой, внутрь которой не очень хочется лезть, кроме того в этом случае встаёт проблема выполнения более сложных запросов, в которых фигурируют как таблицы из текущей области, так и из области "%SYS". Есть идеи? Что приходит на ум: это сделать mapping системных классов, которые ты хочешь использовать. Это можно сделать и программно. Тогда в прикладной области можно будет к ним обратиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 10:01 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
Peter Zarubin CJIECAPbНемного разобрался. Действительно, привилегия действует. Проблема как оказалось связана с тем, что в приложении я выполняю этот запрос не в области "%SYS". Как быть в этом случае? Как предоставить привелегии для таблиц смаппированных из "%SYS"? Конечно перед запросом можно выполнять zn "%SYS" но меня это не устраивает, т.к. запрос на самом деле прописывается не мной, а генерируется давно написанной и отлаженной компонентой, внутрь которой не очень хочется лезть, кроме того в этом случае встаёт проблема выполнения более сложных запросов, в которых фигурируют как таблицы из текущей области, так и из области "%SYS". Есть идеи? Что приходит на ум: это сделать mapping системных классов, которые ты хочешь использовать. Это можно сделать и программно. Тогда в прикладной области можно будет к ним обратиться. Маппинг системных классов делается автоматически во все области. Если бы проблема была в этом, то выдавалось бы сообщение "Not found", а не "SQL Privilege Violation", кроме того запрос также не работал бы при наличии роли %All. Можно ли программно изменять SQL привилегии роли и пользователя? Возможно именно так удастся решить проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 11:39 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
CJIECAPb Можно ли программно изменять SQL привилегии роли и пользователя? Возможно именно так удастся решить проблему. Да, программно можно изменить SQL привилегии. Это делается сл. образом: Код: plaintext 1. 2. Файл privsys.ddl содержит ни что иное как SQL запросы и имеет сл. вид: Код: plaintext 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. 59. 60. 61. 62. 63. Такую схему я использовал на этапе инсталляции Cache (при установке Cache делались соответствующие гранты соответствующим ролям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 04:41 |
|
||
|
Безопасность в 5.1-2007
|
|||
|---|---|---|---|
|
#18+
Выполнил $SYSTEM.SQL.DDLImport из нужной мне области с файликом следующего содержания: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Всё заработало. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 12:15 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=79&tid=1559228]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 350ms |

| 0 / 0 |
