使用gbak备份加密数据库

时间:2014-04-04 14:14:40

标签: interbase

我想使用以下命令备份我的加密数据库(数据库级别而不是列级别):

gbak myDb.IB myDb.bak -b -user sysdba -pass masterkey -encrypt mySep -sep myseppass -service service_mgr

但它不起作用。以下是错误消息:gbak:错误:加密mySep没有密码保护 问题是什么?

我使用这些命令使用Interbase创建了一个加密数据库:

alter database set system encryption password 'myseppass' external;
CREATE ENCRYPTION mySep FOR DES WITH LENGTH 56 BITS FOR DES WITH LENGTH 56 BITS password system encryption password INIT_VECTOR RANDOM;
GRANT encrypt on encryption mySep to SYSDBA;

使用IBConsole,我可以连接到数据库,在属性中,我看到它已加密。

感谢您的阅读。

1 个答案:

答案 0 :(得分:0)

最后,我成功使用了interbase XE的interbase加密。 以下是加密数据库,进行加密备份以及还加密的脚本的主要部分。 必须在启用嵌入式用户身份验证(EUA)的情况下创建数据库。

// connected with SYSDSO: prepare keys and grants
ALTER DATABASE SET SYSTEM ENCRYPTION sepPass;

CREATE ENCRYPTION dbKey FOR DES with LENGTH 56 BITS INIT_VECTOR RANDOM;
CREATE ENCRYPTION backupKey FOR DES with LENGTH 56 BITS password backupKeyPass;

GRANT ENCRYPT ON ENCRYPTION dbKey to SYSDBA;
GRANT ENCRYPT ON ENCRYPTION backupKey to SYSDBA;

// connected with SYSDBA: encrypt database
ALTER DATABASE ENCRYPT WITH dbKey;

// To backup and restore db with gbak
Backup:
gbak -b -v EMPLOYEE.IB EMPLOYEE.IBAK -user SYSDBA -pas masterkey -sep sepPass -encrypt backupKey -se service_mgr

Restore:
gbak -r -v EMPLOYEE.IBAK EMPLOYEE.IB -user SYSDBA -pas masterkey -sep sepPass -decrypt backupKeyPass -se service_mgr