MSSQL数据库内容安全删除指南(mssql内容删除)

MSSQL数据库虽然能为开发者提供便捷的开发流程,但是,在内容安全的审查方面,开发者仍然需要 specifically注意安全的删除操作。这里就来介绍 MSSQL 数据库安全删除的指导方法,希望能对开发者有所帮助。

1、将涉密数据更新为所有者授予的非敏感信息

在数据库安全删除之前,可能进行一些更新操作,将其涉及到的用户敏感信息更新为某些非敏感信息,这样即使将其删除这也不会造成任何安全威胁。比如用一些规则来隐藏某些敏感字段,比如:

• 将电话号码替换为“000-000-0000”

• overwrite 密码为“PASSWORD”

• 把数字替换成单词’zero’

• 生成固定的文本值

下面是一个针对客户表的 update 语句示例:

UPDATE Customer
SET Phone1 = '000-000-0000',
Phone2 = '000-000-0000',
EmailAddress = 'example@examplemail.com',
Password = 'PASSWORD',
[...]
WHERE CustomerID = 100

2、执行精确的删除

更新操作完成之后,可以采用 MSSQL 提供的 delete 语句来执行精确的删除,以下是一个示例:

DELETE FROM Customer 
WHERE CustomerID = 100

此外,还可以使用 truncate 语句来删除 update 更新后的所有数据,以下是一个示例:

TRUNCATE TABLE Customer

3、使用触发器保护更新数据

有些用户敏感信息在被删除前,被更新为不可恢复的值的时候,我们也可以使用某些可信技术来保护更新的数据,比如触发器。

数据库中所有涉及安全的更新语句都可以被触发器拦截,触发器会监督和检查要被 update 的数据,并 header header根据一些特定的条件决定是否执行 update,以下是一个触发器示例:

CREATE TRIGGER tr_protectUpdate
ON dbo.TableName
AFTER UPDATE
AS
BEGIN
IF UPDATE (field1)
BEGIN
if updated.field1
begin
ROLLBACK TRANSACTION
RAISERROR('field1必须大于等于0', 16, 1)
end
END
END

4、加入日志机制

最后,可以使用 MSSQL 的 logon 机制来进行检查和记录,这可以使开发者及时地发现一些潜在的安全事件,以下是一个示例:

CREATE TRIGGER tr_logon
ON dbo.TableName
AFTER UPDATE
AS
BEGIN
INSERT into logTableName (user_name,operation,date)
VALUES (SUSER_SNAME(),'field1 is updated',GETDATE())
END

总结

以上就是 MSSQL 数据库安全删除的指南,希望能对开发者一定程度上保障安全性。包括:将涉及到的信息更新为所有者授予的非敏感信息;使用精准的 delete 语句和 truncate 语句删除;使用触发器保护更新数据;加入日志机制。


数据运维技术 » MSSQL数据库内容安全删除指南(mssql内容删除)