小编Jay*_*Jay的帖子

为什么SESSION_USER返回dbo而不是SQL登录?

我在 GP 表上有一个触发器,用于记录关键字段何时更改以及谁更改了它。下面是触发器的示例。

CREATE TRIGGER [dbo].[TRACKAPP_UPDATE] ON [dbo].[Table]
AFTER UPDATE
AS
DECLARE @MDFUSRID   char(15)
DECLARE @SOPNUMBE   char(32)
DECLARE @DOCSTATUS  INT

BEGIN
BEGIN
IF UPDATE(DOCSTATUS)
BEGIN
    SELECT @MDFUSRID = SESSION_USER
    SELECT @SOPNUMBE = SOPNUMBE FROM inserted
    SELECT @DOCSTATUS = DOCSTATUS FROM INSERTED
Run Code Online (Sandbox Code Playgroud)

在 99% 的情况下,这会返回更改该字段的用户的正确名称。如果任何 ERP 人员更改了某个字段(包括我自己),用户就会显示 dbo。我一直认为这是一个访问问题。然而,我们发现一些用户也以 dbo 而不是他们的名字返回。

在此输入图像描述

您对我应该从哪里开始寻找有什么建议吗?

trigger security sql-server

8
推荐指数
1
解决办法
8414
查看次数

标签 统计

security ×1

sql-server ×1

trigger ×1