mysql - 加密 mysql 服务器中的日期时间字段

标签 mysql

我有 2 个存储过程 EncodeDecode,我想使用此 sp 来转换我的 datetime 列值(例如 Dob)到加密日期。问题是加密格式不是 datetime(varbinary),因此无法插入该字段。更改数据类型或添加新列对我不利,因为我的数据库很大,有很多表和 sps。我目前使用的步骤是:

declare @datetime
set @datetime='01/02/2008 12:45 PM'
declare @secretDate varchar(400)
declare @date varchar(200)
set @date=(select Convert(varchar(200),@datetime,120)
EXEC @secretDate=dbo.Encode @date
set @date=(select Convert(varchar(200),@secretdate,120))
select Convert(varchar(200),convert(varbinary(MAX),@date)) as EncryptedDate

如有任何建议,我们将不胜感激!

最佳答案

您必须分多个步骤对列定义进行此更改。

1) 添加一个新的 cryptoDate 列设置为编码值。

2) 从表中删除现有的日期列。

3) 将 cryptoDate 重命名为现有日期列名称。

您也许可以在一个命令中执行步骤 2 + 3,但我不确定语法。

Any suggestion is appreciated!

这整件事听起来是个坏主意。如果数据已加密,但“解码”函数是数据库中的存储过程,则数据实际上并未加密。这样做还会阻止所有数据比较工作,这是一件坏事。

如果您不想将数据呈现给用户,为什么不在从数据库读取数据时对其进行编码呢?

关于mysql - 加密 mysql 服务器中的日期时间字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000422/

相关文章:

mysql - 最好的方法 - vb.net 和 mysql

php - MySQL 算作最高请求,限制为 5

mysql - MariaDB : Table doesn't exist in engine 数据库损坏

php - 创建一个唯一的对话号码

php - 通过php发布sql查询的结果与通过phpmyadmin发布sql查询的结果不同

mysql - 学习使用 SQL 的高级功能

mysql - Thinking Sphinx 中搜索条件的索引计算字段

PHP 未从我的服务器文件夹中获取图像

mysql - 在亚线性时间内从MySQL表中选择加权随机条目

mysql - SQL检查两个表