我在遗留的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;
用于数据库连接的用户帐户具有以下角色:
我该如何解决这个问题?
答案 0 :(得分:2)
禁用或启用触发器用户必须对表或定义/创建触发器的视图具有ALTER
权限。
要向表上的用户授予权限,您可以执行以下语句。
GRANT ALTER ON [dbo].[theTable] TO [User]
GO
答案 1 :(得分:-1)
用户帐户需要访问 myschema 。通过SQL Server Management Studio中的“数据库用户”对话框使用户成为 myschema 的所有者,解决了错误。