2014-03-03 36 views
0

我正在對傳統的ASP.NET 3.5和SQL Server Web應用程序進行維護。一個特定的功能被破壞。檢查日誌文件揭示了以下錯誤:如何解決在數據庫錯誤中拒絕的DISABLE TRIGGER權限?

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

我該如何解決這個問題?

+0

db_ddladmin應該足夠了,因爲您需要在表上修改權限。只是爲了確認沒有什麼有趣的事情發生,請查看sys.fn_my_permisssions中的表格。你可能會看到令人驚訝的事情。或者,確保你以你自己的身份跑步。 –

回答

-1

用戶帳戶訪問MYSCHEMA。通過SQL Server Management Studio中的數據庫用戶對話框讓用戶成爲myschema的所有者,從而解決了錯誤。

1

要禁用或啓用觸發的用戶必須對錶ALTER許可或在其上的觸發定義/創建的視圖。

要授予用戶在表上的權限,您可以執行以下語句。需要

GRANT ALTER ON [dbo].[theTable] TO [User] 
GO 
相關問題