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

时间:2014-03-03 01:38:12

标签: 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'.

存储过程代码为:

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;

用于数据库连接的用户帐户具有以下角色:

SQL Server roles

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

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

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

GRANT ALTER ON [dbo].[theTable] TO [User] 
GO

答案 1 :(得分:-1)

用户帐户需要访问 myschema 。通过SQL Server Management Studio中的“数据库用户”对话框使用户成为 myschema 的所有者,解决了错误。