我需要向哪个 sql GP 用户主体授予 CREATE 权限才能让我的触发器继续工作?
What sql GP user principle do I need to GRANT the CREATE privilage to for my trigger to still work?
我在公司数据库中的 [dbo].[POP10300]
上放置了一个触发器,以便在收到采购订单时在自定义 table 中添加一条记录:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[POReceivingTrigger]
ON [dbo].[POP10300]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
INSERT INTO [cp].[PrintQueue] ([Created], [Module], [Trigger], [Alert or Report], [Event])
SELECT
GETDATE()
,'GP'
,POPRCTNM
,'BackOrderedItemsReceived'
,'PO Received'
FROM INSERTED
END
它适用于 GP 用户 sa
但不适用于任何其他 GP 用户。他们在接收时收到此错误弹出窗口:
我需要什么 sql GP 用户原则才能 GRANT
INSERT
特权 [cp].[PrintQueue]
触发器仍然有效?
已修复。
GRANT INSERT ON [cp].[PrintQueue] TO [DYNGRP];
What sql GP user principle do I need to GRANT the INSERT privilege to on [cp].[PrintQueue] for the trigger to still work?
默认情况下,触发器以用户 运行 的身份执行导致触发器触发的 DML 语句。所以要么
改变触发器的执行上下文为EXECUTE AS OWNER
,
授予所有用户 INSERT 目标 table,或
确保目标架构和触发器对象的架构由同一用户拥有,以启用所有权链来抑制对 INSERT 的权限检查。
我在公司数据库中的 [dbo].[POP10300]
上放置了一个触发器,以便在收到采购订单时在自定义 table 中添加一条记录:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[POReceivingTrigger]
ON [dbo].[POP10300]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
INSERT INTO [cp].[PrintQueue] ([Created], [Module], [Trigger], [Alert or Report], [Event])
SELECT
GETDATE()
,'GP'
,POPRCTNM
,'BackOrderedItemsReceived'
,'PO Received'
FROM INSERTED
END
它适用于 GP 用户 sa
但不适用于任何其他 GP 用户。他们在接收时收到此错误弹出窗口:
我需要什么 sql GP 用户原则才能 GRANT
INSERT
特权 [cp].[PrintQueue]
触发器仍然有效?
已修复。
GRANT INSERT ON [cp].[PrintQueue] TO [DYNGRP];
What sql GP user principle do I need to GRANT the INSERT privilege to on [cp].[PrintQueue] for the trigger to still work?
默认情况下,触发器以用户 运行 的身份执行导致触发器触发的 DML 语句。所以要么
改变触发器的执行上下文为
EXECUTE AS OWNER
,授予所有用户 INSERT 目标 table,或
确保目标架构和触发器对象的架构由同一用户拥有,以启用所有权链来抑制对 INSERT 的权限检查。