如何管理防止自己刪除或截斷特定表,因爲有時表意外被截斷或刪除,使視圖不是一個好主意。如果我做了觸發器,它在db中的所有表中實現。我只是想在特定的表中,在SQL Server中實現它?<b>admin</b>防止自己放棄特定表?
回答
Create TRIGGER [TR_ProtectCriticalTables]
ON DATABASE
FOR
DROP_TABLE
AS
DECLARE @eventData XML,
@uname NVARCHAR(50),
@oname NVARCHAR(100),
@otext VARCHAR(MAX),
@etype NVARCHAR(100),
@edate DATETIME
SET @eventData = eventdata()
SELECT
@edate=GETDATE(),
@[email protected]('data(/EVENT_INSTANCE/UserName)[1]', 'SYSNAME'),
@[email protected]('data(/EVENT_INSTANCE/ObjectName)[1]', 'SYSNAME'),
@[email protected]('data(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]',
'VARCHAR(MAX)'),
@[email protected]('data(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)')
IF @oname IN ('tbluser')-- You can give comma seperated list here
BEGIN
DECLARE @err varchar(100)
SET @err = 'Table ' + @oname + ' is super duper protected and cannot be dropped.'
RAISERROR (@err, 16, 1) ;
ROLLBACK;
END
GO
ENABLE TRIGGER [TR_ProtectCriticalTables] ON DATABASE
對於禁用截斷試試這個
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'TestTable',
@role_name = NULL
GO
這可能會導致一些其它問題,請檢查在使用之前。
我認爲這將是在所有表上實施, –
否「IF @oname IN('tbluser')」在這裏您可以指定您希望不被刪除的逗號分隔列表。 –
謝謝@anshuman如何防止truncate由管理員 –
只需刪除特殊管理員的權限目錄即可。並創建第二個有權執行此類危險作業的用戶。請參閱GRANT and REVOKE SQL命令。
@puneet約截斷權限:截斷表完全清空的表。它需要MySQL 5.1.16的DROP特權。 (在5.1.16之前,它需要DELETE權限)。 – rekire
我有管理員權限,現在我想要某些特定的表不能意外截斷,如果我想截斷他們,我必須強制這個,一種方法是bt在其他表中使用外鍵約束,但我不想要做到這一點 –
請創建用戶,並創建觸發超級管理員,誰擁有像所有權限:
CREATE TRIGGER reminder2
ON Customer
with execute as owner
AFTER DELETE
AS
truncate table Customer
- 1. ARM彙編器 - 如何使用CMP,BLT和BGT?
- 2. 如何防止GridView放棄width屬性?
- 3. 如何防止表被丟棄?
- 4. 防止jquery追加自己的回調
- 5. 如何防止maruku自己創建ID
- 6. 防止聽衆觸發自己
- 7. 防止require.js登錄自己安慰
- 8. JAX-RS:自定義TypeConverter用於防止拋棄
- 9. 放棄根特權?
- 10. 如何防止綁定到自己導致的保留週期
- 11. 禁止特定的棄用郵件
- 12. Teradata放棄任何特定會話
- 13. 防止自定義類
- 14. 如何防止MATLAB放棄數組的「複雜」屬性?
- 15. 如何防止特定的自定義操作篩選
- 16. 定期爲自己做網絡請求以防止IIS終止應用程序
- 17. 防止IE Mobile自動縮放網頁
- 18. 如何防止軸自動縮放?
- 19. 如何防止「自我」拖放datagridview?
- 20. 防止自舉*開放*從運行
- 21. 如何防止Flex中特定子元素的縮放?
- 22. WinJS Listview防止拖放到特定元素上
- 23. Android Camera2放棄自動對焦鎖定
- 24. 放棄引導爲我自己的框架
- 25. 如何防止我的自定義元素獲得自己的div?
- 26. 防止reveal.js放大
- 27. 在自己的類中阻止對特定屬性的訪問
- 28. 如何防止IIS7丟棄我的Cookie?
- 29. 防止Jsoup丟棄額外的空白
- 30. 防止模板丟棄DOM元素
你可以寫上具體的表 – AnandPhadke
一個觸發器,你可以給如何,我搜索了一些例子,但沒有找到它的特定表刪除或截斷 –