|
Странное поведение DBMS_RLS.ADD_POLICY
|
|||
---|---|---|---|
#18+
Наткнулся на ошибку, которая в моем понимании быть не должна. Вот демо-код: Код: 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.
А вот результат его выполнения: Код: 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. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
Странно тут вот что: 1. По документации statement_types IN VARCHAR2 DEFAULT NULL , но есть приписочка, что It can be any combination of INDEX, SELECT, INSERT, UPDATE, or DELETE. The default is to apply to all of these types except INDEX. 2. По документации update_check IN BOOLEAN DEFAULT FALSE . Таким образом, все 4 варианта создания политик должны быть равноценны, однако это не так . Причём пробовал в 12.2 и 19 - одинаковая реакция. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2020, 04:06 |
|
Странное поведение DBMS_RLS.ADD_POLICY
|
|||
---|---|---|---|
#18+
И заключительный штрих: Код: plsql 1. 2. 3. 4. 5. 6.
Почему же INSERT не оказался среди дефолтных? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2020, 04:16 |
|
Странное поведение DBMS_RLS.ADD_POLICY
|
|||
---|---|---|---|
#18+
А это именно с 12.2 поперло: https://docs.oracle.com/database/121/ARPLS/d_rls.htm#ARPLS67721 update_check Optional argument for INSERT or UPDATE statement types. The default is FALSE. Setting update_check to TRUE causes the server to also check the policy against the value after insert or update. The check applies only to the security relevant columns that are included in the policy definition. In other words, the INSERT or UPDATE operation will fail only if the security relevant column that is defined in the policy is added or updated in the INSERT or UPDATE statement. https://docs.oracle.com/en/database/oracle/oracle-database/12.2/arpls/DBMS_RLS.html#GUID-1E528A51-DE53-4961-8770-C53924E427CC update_check Optional argument for the INSERT or UPDATE statement type. The default is FALSE. If you plan to use the INSERT statement type, then you must set update_check to TRUE. Otherwise, an ORA-28104 input value for string is not valid error is generated . The check applies only to the security relevant columns that are included in the policy definition. In other words, the INSERT or UPDATE operation will fail only if the security relevant column that is defined in the policy is added or updated in the INSERT or UPDATE statement. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2020, 07:34 |
|
|
start [/forum/topic.php?fid=52&fpage=29&tid=1880580]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 157ms |
0 / 0 |