Sql 是否有一种方法可以默认触发器在特定用户上运行DML操作?

Sql 是否有一种方法可以默认触发器在特定用户上运行DML操作?,sql,sql-server,tsql,database-trigger,Sql,Sql Server,Tsql,Database Trigger,我在数据库a中的表a上有一个触发器,它将数据插入数据库b中的表b中,这两个数据库都在同一台服务器上 具有数据库A中表A的开发人员访问权限的用户在执行dml操作时遇到错误,因为他的角色仅限于使用数据库A。是否有方法默认触发器在特定连接上运行??在SQL Server中,触发器(以及存储过程和函数)具有该子句。这使您可以在执行代码时控制权限。是否确实希望触发器始终写入B,例如,在触发器中包含executeas子句,以授予当前用户可能缺少的权限?或者您更愿意在触发器中检查当前用户的权限,而不尝试插入他

我在数据库a中的表a上有一个触发器,它将数据插入数据库b中的表b中,这两个数据库都在同一台服务器上


具有数据库A中表A的开发人员访问权限的用户在执行dml操作时遇到错误,因为他的角色仅限于使用数据库A。是否有方法默认触发器在特定连接上运行?

在SQL Server中,触发器(以及存储过程和函数)具有该子句。这使您可以在执行代码时控制权限。

是否确实希望触发器始终写入
B
,例如,在触发器中包含
executeas
子句,以授予当前用户可能缺少的权限?或者您更愿意在触发器中检查当前用户的权限,而不尝试插入他们不允许执行的
insert
?是的,我确实希望触发器写入表B。最佳做法是将execute中的数据库所有者用户名别名为第229条,第14级,状态5,过程触发器名称,第6行[批次起始行9]对对象“TABLENAME”、数据库“DatabaseName”、架构“SCHEMANAME”的INSERT权限被拒绝。我已将execute as子句用于user和login,并授予了权限。仍然遇到上述错误。是否有其他解决方法。谢谢advance@Surya…通常您根据ow授予权限扳机的扳机。