我们正在使用 Sybase SQL Anywhere 11
。我们需要加密我们数据库中的一些表。我按照说明去做了。我们选择了带有 encryptionKey 和 AES256_FIPS 算法的“强”选项。但有些事情我不太清楚。
当我们创建数据库、删除数据库和启动数据库服务器时需要 encryptionKey,但当我们停止数据库服务器并连接到服务器以创建表和添加数据时不需要 encryptionKey。为什么当我们连接到它或尝试停止服务器时没有询问 encryptionKey?我做错了什么?
不知道如何测试加密?当我使用 Sybase Central 工具时,我仍然可以看到加密表中的所有纯文本。如果有人知道数据库用户名和密码,他/她可以连接到数据库并在没有加密 key 的情况下读取内容。这样对吗?
最佳答案
我不能专门针对 Sybase 的系统,但数据库加密一般旨在在文件系统级别加密,以防止对数据库数据的后门访问(即读取二进制文件和解析自己而不是通过 RDBMS),不是以防止通过标准数据库接口(interface)访问或混淆数据(预计您将使用 RDBMS 的安全机制来执行此操作)。
关于数据库加密题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007436/