|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Есть команда GRANT CREATE ANY TABLE. В таком случае одна схема получает возможность создать таблицы в любой другой отличной от себя схеме. Мне необходимо дать право схеме создать таблицы в одной единственной схеме. Как можно это сделать?? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 15:48 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
Создайте процедуру в "одной единственной схеме", например, в ONE_SINGLE_SCHEME: Код: plsql 1. 2. 3. 4. 5. 6.
Дайте грант на выполнение этой процедуры тому, кто должен создавать таблицу. Например, пользователю SCOTT Код: plsql 1.
Выполните процедуру от пользователя SCOTT Код: plsql 1. 2. 3. 4.
Будет создана таблица ONE_SINGLE_SCHEME.test_tab ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 16:21 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SQL*Plus, Этот вариант хитренький. Мы даём право execute procedure и даем ей параметры которые через динамический создаёт таблицу. Умно. Скажите а нет ли манёвра через Гранты. Или в оракле это не предусмотрено в принципе? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 17:38 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SQL*Plus Будет создана таблица ONE_SINGLE_SCHEME.test_tab А заодно можно "инжектнуть" все на что имеет права ONE_SINGLE_SCHEME но не имеет SCOTT. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 17:40 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SY SQL*Plus Будет создана таблица ONE_SINGLE_SCHEME.test_tab А заодно можно "инжектнуть" все на что имеет права ONE_SINGLE_SCHEME но не имеет SCOTT. Это вряд ли. Вы же обратили внимание, что в EXECUTE IMMEDIATE я явно написал 'CREATE TABLE ' Код: plsql 1.
Поэтому ничего, кроме создания обычной таблицы, эта процедура сделать не сможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 18:45 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
juratorneo SQL*Plus, Этот вариант хитренький. Мы даём право execute procedure и даем ей параметры которые через динамический создаёт таблицу. Умно. Скажите а нет ли манёвра через Гранты. Или в оракле это не предусмотрено в принципе? Нету. Не предусмотрено. Посмотрел в доке на Oracle Database 21c, но ничего нового в команде GRANT не нашёл. Вы расскажите зачем вам оно надо? В процессе рассказа вы вполне возможно поймёте, что оно вам не надо. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 18:51 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SQL*Plus Это вряд ли. Вы же обратили внимание, что в EXECUTE IMMEDIATE я явно написал 'CREATE TABLE ' Код: plsql 1.
Поэтому ничего, кроме создания обычной таблицы, эта процедура сделать не сможет. Явное CREATE TABLE не спасет от CREATE TABLE ... AS SELECT простор-для фантазии; SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 19:55 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SQL*Plus Поэтому ничего, кроме создания обычной таблицы, эта процедура сделать не сможет. Код: 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. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 20:51 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
Sayan Malakshinov SQL*Plus Поэтому ничего, кроме создания обычной таблицы, эта процедура сделать не сможет. Код: 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. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
Ну это лечится через INHERIT PRIVILEGES. А вот просто почитать что нельзя это исключить сложнее. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 21:14 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SY Ну это лечится через INHERIT PRIVILEGES. зы. но вообще все это звучит подозрительно, как будто хотят постоянно, динамически и в любое время давать создавать кому-то таблицы. В принципе, конечно, это можно реализовать через CREATE ANY TABLE + DDL триггер с жесткой фильтрацией что и кому можно, но по-моему тут просто нужен прокси юзер ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 01:57 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
SY SQL*Plus Это вряд ли. Вы же обратили внимание, что в EXECUTE IMMEDIATE я явно написал 'CREATE TABLE ' Код: plsql 1.
Поэтому ничего, кроме создания обычной таблицы, эта процедура сделать не сможет. Явное CREATE TABLE не спасет от CREATE TABLE ... AS SELECT простор-для фантазии; SY. Да, это правда. Вариант ... AS SELECT я упустил. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 13:10 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
Sayan Malakshinov SQL*Plus Поэтому ничего, кроме создания обычной таблицы, эта процедура сделать не сможет. Код: 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. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
Спасибо за доходчивый пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 13:14 |
|
Право создать таблицу в конкретной схеме
|
|||
---|---|---|---|
#18+
Sayan Malakshinov не понял, как это может лечиться через INHERIT PRIVILEGES, если они только для AUTHID CURRENT_USER? Упс, прочитал по-диагонали. Увидел AUTHID и зациклился. Но это интересный баг (IMHO). autonomous_transaction внутри DML запрещена и по идее Oracle должен это проверять на всех вложенных уровнях а не только у непосредственно вызванной функции. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:24 |
|
|
start [/forum/topic.php?fid=52&msg=40073184&tid=1880163]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
154ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 271ms |
0 / 0 |