如何修复数据库错误中拒绝的 DISABLE TRIGGER 权限?

Gid*_*sey 1 sql-server triggers permission-denied

我正在对旧版 ASP.NET 3.5 和 SQL Server Web 应用程序进行维护。某个特定功能已损坏。检查日志文件显示以下错误:

Error: SqlException (262): Procedure: spMyStoredProcedure Line: 10 State: 20 Message: DISABLE TRIGGER permission denied in database 'MyDatabase'.
Run Code Online (Sandbox Code Playgroud)

存储过程代码为:

ALTER Procedure dbo.spMyStoredProcedure
as
    --Disable Triggers, no need to copy records into history tables
    Disable TRIGGER Trigger1 on myschema.table1;
    Disable TRIGGER Trigger2 on myschema.table2;
    Disable TRIGGER Trigger3 on myschema.table3;
    Disable TRIGGER Trigger4 on myschema.table4;
Run Code Online (Sandbox Code Playgroud)

用于数据库连接的用户帐户已被赋予以下角色:

SQL Server 角色

我该如何解决?

M.A*_*Ali 5

禁用或启用触发器 用户必须对ALTER定义/创建触发器的表或视图具有权限。

要向用户授予对表的权限,您可以执行以下语句。

GRANT ALTER ON [dbo].[theTable] TO [User] 
GO
Run Code Online (Sandbox Code Playgroud)