Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 安全 » 保护数据的安全 » 加密和解密数据库

 

创建加密的数据库

要创建加密的数据库,可以采用下列方式:

  • 将数据库初始化实用程序 (dbinit) 与各种选项配合使用来启用高度加密。

    dbinit 实用程序 -ep 和 -ek 选项可以创建采用高度加密的数据库,您可以在提示框或命令行中指定加密密钥。dbinit -ea 选项将加密算法设置为 AES 或 AES256 算法(或 FIPS 认可的 AES_FIPS 或 AES256_FIPS 算法)。请参见初始化实用程序 (dbinit)

  • 使用 Sybase Central 的 [创建数据库向导] 创建高度加密的数据库。请参见创建数据库 (Sybase Central)

  • 使用卸载数据库实用程序 (dbunload) 并指定相应选项来创建新的采用高度加密的数据库。-an 选项创建新的数据库。要在提示框或命令行中指定高度加密和加密密钥,请使用 -ep 或 -ek 选项。-ea 选项将加密算法设置为 AES 或 AES256(或 FIPS 认可的 AES_FIPS 或 AES256_FIPS 算法)。请参见卸载实用程序 (dbunload)

  • 您还可以使用 Sybase Central 的 [卸载数据库向导] 创建高度加密的数据库。请参见使用 [卸载数据库向导] 导出数据

  • 使用以下 SQL 语句:

♦  创建加密的数据库 (SQL)
  1. 从 Interactive SQL 连接到现有数据库。

  2. 执行包含 ENCRYPTION 子句、KEY 以及 ALGORITHM 选项的 CREATE DATABASE 语句。

    例如,以下语句会使用 FIPS 认可的 128 位 AES 加密在 c:\ 目录中创建一个名为 myencrypteddb.db 的数据库文件。

    CREATE DATABASE 'c:\\myencrypteddb.db'
    TRANSACTION LOG ON
    ENCRYPTED ON
      KEY '0kZ2o52AK#'
      ALGORITHM 'AES_FIPS';
♦  创建加密的数据库(命令提示符)
  1. 使用 dbinit 实用程序创建一个数据库。必须附带 -ek 或 -ep 选项,以便相应地在命令提示符处或窗口中指定加密密钥。

    以下命令会创建一个高度加密的数据库,并指定加密密钥和算法。

    dbinit -ek "0kZ2o56AK#" -ea AES_FIPS "myencrypteddb.db"
  2. 运行以下命令启动数据库:

    dbeng11 myencrypteddb.db -ek "0kZ2o56AK#"
♦  使用现有数据库创建加密的数据库 (SQL)
  1. 从 Interactive SQL 连接到现有数据库(不是您所复制的数据库)。

  2. 使用 CREATE ENCRYPTED DATABASE 语句对数据库加密。

    以下语句使用数据库文件 demo.db,并为该文件创建一个名为 encryptedDemo.db 的 AES 加密的副本。

    CREATE ENCRYPTED DATABASE 'encryptedDemo.db'
    FROM 'demo.db'
    KEY 'abc'
    ALGORITHM 'AES';

    当执行 CREATE ENCRYPTED DATABASE 语句时,实际上不会加密(覆盖)原文件,而是为该文件创建一个加密形式副本。如果存在与此数据库关联的事务日志、事务日志镜像或 dbspace,则也会创建这些文件的加密副本。请参见CREATE ENCRYPTED DATABASE 语句

为技术支持加密数据库

如果有一个需要恢复的数据库,想要对其进行加密以便送给技术支持部门,则必须使用 CREATE ENCRYPTED FILE 语句。任何与数据库相关的文件(例如事务日志、事务日志镜像以及 dbspace 文件)必须也要使用此语句进行加密。请参见CREATE ENCRYPTED FILE 语句

比较 CREATE ENCRYPTED DATABASE 和 CREATE ENCRYPTED FILE 语句

当想要对现有的数据库进行加密时,应使用 CREATE ENCRYPTED DATABASE 语句。仅在想要对需要恢复的数据库进行加密时才能使用 CREATE ENCRYPTED FILE 语句。

这两个语句都要求您拥有 DBA 权限,且在执行语句时您不能连接到要加密的数据库。

CREATE ENCRYPTED FILE 和 CREATE ENCRYPTED DATABASE 语句彼此之间的不同点如下:

  • CREATE ENCRYPTED FILE 语句必须针对每个与数据库相关的文件(事务日志、事务日志镜像、dbspace,如果有)单独执行,而 CREATE ENCRYPTED DATABASE 语句自动加密所有与数据库相关的文件。

  • CREATE ENCRYPTED DATABASE 语句不能在需要恢复的数据库上使用;CREATE ENCRYPTED FILE 语句则可以做到这一点。

  • CREATE ENCRYPTED DATABASE 语句不能在过程、触发器或批处理内部使用。CREATE ENCRYPTED FILE 语句则可以做到这一点。

  • CREATE ENCRYPTED DATABASE 语句支持 SIMPLE 加密算法,但 CREATE ENCRYPTED FILE 语句则不支持。

另请参见

有关加密密钥的详细信息,请参见DatabaseKey 连接参数 [DBKEY]

在 Windows Mobile 上,仅 ARM 处理器支持 AES_FIPS 和 AES256_FIPS 算法。

注意

并非所有平台上都可以使用 FIPS。有关受支持平台的列表,请参见 [external link] http://www.sybase.com/detail?id=1062623