Есть ли способ создать триггеры для конкретных пользователей или ролей в Azure Synapse или Azure DW?
Как создать триггеры для конкретных пользователей или ролей в AZURE DW или синапсе Azure?
comment
Боюсь, что нет...
- person Leon Yue   schedule 06.01.2021
comment
В настоящее время выделенные пулы SQL Azure Synapse не поддерживают триггеры DML или DDL. Конвейеры Azure Synapse (под капотом ADF) поддерживают триггеры событий, например размещение файла в большом двоичном объекте. Поэтому, если вы объясните немного больше о том, чего вы пытались достичь в целом, возможно, кто-то сможет вам помочь. Например, если вы направляете некоторые действия через хранимую процедуру, в которую встроена определенная логика, будет ли это иметь аналогичный эффект?
- person wBob   schedule 06.01.2021
comment
@wBob Я хочу, чтобы определенные пользователи или определенные роли не удаляли таблицу.
- person BrownBatman   schedule 06.01.2021
Ответы (1)
Для этого вам не нужен триггер. Пользователи могут делать только то, что вы им позволяете. Например, когда вы впервые создаете пользователя в базе данных, у него нет разрешений. Пользователи могут удалять таблицы только в том случае, если они являются членами роли базы данных db_ddladmin
или фактически являются db_owner
или системными администраторами. Итак, ответ на ваш вопрос: убедитесь, что пользователь не является членом роли db_ddladmin
в базе данных.
Вы можете использовать оператор DENY
для определенных ролей, но я думаю, что это приведет к чрезмерно сложной настройке, которую трудно поддерживать и администрировать. См. Роли базы данных для Synapse для получения дополнительной информации.
person
wBob
schedule
07.01.2021