为现有数据库创建一份加密副本,其中包括所有的事务日志和 dbspace。还可以使用此语句为数据库创建一份副本以及在该副本中启用表加密。
CREATE ENCRYPTED DATABASE newfile FROM oldfile [ KEY newkey ] [ OLD KEY oldkey ] [ ALGORITHM algorithm
algorithm : | 'SIMPLE' | 'AES' | 'AES256' | 'AES_FIPS' | 'AES256_FIPS'
CREATE ENCRYPTED TABLE DATABASE newfile FROM oldfile [ KEY newkey ] [ OLD KEY oldkey ] [ ALGORITHM algorithm ]
oldfile 可以是未加密数据库、已加密数据库或启用了表加密的数据库。
语法 1 使用现有数据库 oldfile,并为其创建了一个加密副本 newfile。
语法 2 使用现有数据库 oldfile,并为其创建了一个启用了表加密的副本 newfile。使用此语法时,在 oldfile 中加密的所有表同样在 newfile 中进行了加密。如果在 oldfile 中未加密任何表,但又想加密它们,则可对要加密的各个表执行 ALTER TABLE ...ENCRYPTED 语句。请参见ALTER TABLE 语句。
这两种语法都不会替换或移除 oldfile。
如果 oldfile 使用事务日志或事务日志镜像文件,它们将分别被重命名为 newfile.log 和 newfile.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。有关受支持的平台的列表,请参见 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'; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |