Какой пользователь создал вид на Снежинку - PullRequest
1 голос
/ 05 апреля 2020

Есть ли способ получить пользователя (не роль), который создал представление? Я попробовал des c, show, grants для просмотра, но не смог получить указанный c user

1 Ответ

3 голосов
/ 05 апреля 2020

Табличные функции INFORMATION_SCHEMA.QUERY_HISTORY * имеют столбец USER_NAME, и вы можете отфильтровать по QUERY_TEXT, чтобы найти оператор CREATE представления.

Это должно работать, если представления не были созданы с переменной. Например: CREATE OR REPLACE VIEW IDENTIIER($MY_VAR)..., где MY_VAR - это переменная, содержащая имя представления.


UPDATE

INFORMATION_SCHEMA.QUERY_HISTORY Табличные функции возвращают результаты за последние 7 дней. Также см. Табличные функции ACCOUNT_USAGE.QUERY_HISTORY , которые возвращают результаты за последние 365 дней с задержкой в ​​45 минут.


ОБНОВЛЕНИЕ 2

Вы также можете используйте соглашения, такие как:

  • Предоставьте каждому пользователю свою собственную схему, составленную из его имени или инициалов
  • Попросите пользователей указать свое имя или инициалы в представлении. КОММЕНТАРИЙ
  • Или попросите пользователей поставить префикс или суффикс своих представлений с их инициалами

Если представления создаются с помощью скрипта или хранимой процедуры, то вы можете автоматизировать описанное выше.

Наконец, хотя это не лучшая практика, вы можете создать отдельную роль для каждого пользователя. Это, однако, создает большие административные издержки, особенно при масштабировании, и не рекомендуется.

...