我想使用以下命令备份我的加密数据库(数据库级别而不是列级别):
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,我可以连接到数据库,在属性中,我看到它已加密。
感谢您的阅读。
答案 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