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 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

CREATE ENCRYPTED DATABASE 语句

为现有数据库创建一份加密副本,其中包括所有的事务日志和 dbspace。还可以使用此语句为数据库创建一份副本以及在该副本中启用表加密。

语法 1 - 创建数据库的加密副本
CREATE ENCRYPTED DATABASE newfile
FROM oldfile
[ KEY newkey ] 
[ OLD KEY oldkey ]
[ ALGORITHM algorithm
algorithm : 
   | 'SIMPLE'
   | 'AES' 
   | 'AES256' 
   | 'AES_FIPS'
   | 'AES256_FIPS'
语法 2 - 创建启用表加密的数据库的副本
CREATE ENCRYPTED TABLE DATABASE newfile
FROM oldfile
[ KEY newkey ] 
[ OLD KEY oldkey ]
[ ALGORITHM algorithm ]
参数
  • ENCRYPTED DATABASE 子句   使用此子句指定新加密数据库的名称。

  • ENCRYPTED TABLE DATABASE 子句   使用此子句指定新数据库的名称。该新数据库未加密,但已启用表加密。

  • FROM 子句   使用此子句指定原始数据库的名称 (oldfile)。

  • KEY 子句   如果 algorithm-key 不是 SIMPLE,使用此子句指定 newfile 的加密密钥。

  • OLD KEY 子句   使用此子句指定 oldfile 的加密密钥。仅当 oldfile 使用 SIMPLE 之外的任何其它加密方法进行加密时才需要此子句。

  • ALGORITHM 子句   使用此子句指定要用于 newfile 的加密算法。如果指定 KEY 子句但未指定 ALGORITHM 子句,缺省情况下将使用 AES(128 位加密)。如果指定 SIMPLE 作为 algorithm,则不必指定 KEY 子句。

注释

oldfile 可以是未加密数据库、已加密数据库或启用了表加密的数据库。

语法 1 使用现有数据库 oldfile,并为其创建了一个加密副本 newfile

语法 2 使用现有数据库 oldfile,并为其创建了一个启用了表加密的副本 newfile。使用此语法时,在 oldfile 中加密的所有表同样在 newfile 中进行了加密。如果在 oldfile 中未加密任何表,但又想加密它们,则可对要加密的各个表执行 ALTER TABLE ...ENCRYPTED 语句。请参见ALTER TABLE 语句

这两种语法都不会替换或移除 oldfile

如果 oldfile 使用事务日志或事务日志镜像文件,它们将分别被重命名为 newfile.lognewfile.mlg

如果 oldfile 包含 dbspace 文件,文件名中将添加一个 E(代表已加密)。例如,在执行 CREATE ENCRYPTED DATABASE 语句后,文件 mydbspace.dbs 将更改为 mydbspace.dbsE

可使用此语句来更改数据库的加密算法和密钥。不过,CREATE ENCRYPTED DATABASE 语句会生成一个新文件 (newfile),而不是替换或移除先前版本的文件 (oldfile)。

CREATE ENCRYPTED DATABASE 和 CREATE ENCRYPTED TABLE DATABASE 不能针对需要恢复的数据库运行。另外,过程、触发器、事件或批处理中均不支持这两个语句。

有关简单加密和高度加密的详细信息,请参见简单加密高度加密

通过卸载数据库然后联合使用 dbunload -an 选项与 -ek 或 -ep 重装数据库,还可以加密现有数据库或更改现有加密密钥。请参见使用 dbunload 实用程序重建数据库

还可以使用 CREATE DATABASE 语句创建一个加密的数据库或创建一个启用表加密的数据库。请参见CREATE DATABASE 语句

注意

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

权限

必须是具有 DBA 权限的用户。

副作用

无。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下示例将为演示数据库创建一个加密副本,名为 demoEnc.db。新数据库使用 AES256 加密进行了加密。

CREATE ENCRYPTED DATABASE 'demoEnc.db'
   FROM 'demo.db'
   KEY 'Sd8f6654*Mnn'
   ALGORITHM 'AES256';

以下示例将为演示数据库创建一个副本,名为 demoTableEnc.db。新数据库启用了表加密。由于指定密钥时没有采用任何算法,因此使用 AES 加密。

CREATE ENCRYPTED TABLE DATABASE 'demoTableEnc.db'
   FROM 'demo.db'
   KEY 'Sd8f6654';