Как создать триггеры для конкретных пользователей или ролей в AZURE DW или синапсе Azure?

Есть ли способ создать триггеры для конкретных пользователей или ролей в Azure Synapse или Azure DW?


person BrownBatman    schedule 06.01.2021    source источник
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