Jan 23, 2006
I need to start encrypting several fields in a database and have been doing some testing with a test database first. I've run into problems when attempting to restore the database on either the same server (but different database) or to a separate server.
First, here's how i created the symmetric key and encrypted data in the original database:
create master key
encryption by password = 'testAppleA3';
create certificate test
with subject = 'test certificate',
EXPIRY_DATE = '1/1/2010';
create symmetric key sk_Test
with algorithm = triple_des
encryption by certificate test;
open symmetric key sk_Test decryption by certificate test;
insert into employees values (101,'Jane Doe',encryptbykey(key_guid('sk_Test'),'$200000'));
insert into employees values(102,'Bob Jones',encryptbykey(key_guid('sk_Test'),'$500000'));
select * from employees
--delete from employees
select id,name,cast(decryptbykey(salary) as varchar(10)) as salary from employees
close all symmetric keys
Next I backup up this test database and restore it to a new database on a different server (same issue if restore to different database but on same server).
Then if i attempt to open the key in the new database and decrypt:
open symmetric key sk_Test decryption by certificate test;
I get the error: An error occurred during decryption.
Ok, well not unexpected, so reading the forums, i try doing the below first in the new database:
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
Then I try opening the key again and get the error again:
An error occurred during decryption.
So then it occurs to me, maybe i need to drop and recreate it so i do
drop symmetric key sk_test
then
create symmetric key sk_Test
with algorithm = triple_des
encryption by certificate test;
and then try to open it.
Same error!
So then i decide, let's drop everything, the master key, the certificate and then symmetric key:
drop symmetric key sk_test
drop certificate test
drop master key
Then recreate the master key:
create master key
encryption by password = 'testAppleA3';
Restore the certificate from a backup i had made to a file:
CREATE CERTIFICATE test
FROM FILE = 'c:storedcertsencryptiontestcert'
Recreate the symmetric key again:
create symmetric key sk_Test
with algorithm = triple_des
encryption by certificate test;
And now open the key only to get the error:
Cannot decrypt or encrypt using the specified certificate, either because it has no private key or because the password provided for the private key is incorrect.
So what am I doing wrong here? In this scenario I would appear to have lost all access to decrypt the data in the database despite restoring from a backup which restored the symmetric key and certificate and i obviously know the password for the master key.
I also tried running the command
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
again but this does not resolve the issue.
Thx.
View 6 Replies
View Related
May 29, 2007
The SQL server transition log backups for the ReportServer and ReportServerTempDB databases have stopped working ever since I applied SQL Server SP2 to my TFS. I know this because I know the date the SQL SP was applied and I see that my transaction logs started to fail immediately after application of the SP. This is noted because the backup logs for SQL server start to contain the failure immediately after SP2 application. The failure is because the databases are now set to the simple recovery model (or they were set to the simple model before application of SP2 and the previous SQL server allowed or properly ignored transaction log backups with the simple database recovery model). Why is this failing since the backup task indicates that databases with simple recovery are automatically excluded? Is the reportserver and reportservertempdb both supposed to be simple recovery? I thought reportserver was usually full recovery.
Here's the contents of TfsTransactionLogBackup_20070308160004.txt before the SP2 application:
Code SnippetMicrosoft(R) Server Maintenance Utility (Unicode) Version 9.0.2047
Report was generated on "TEAMSERVER".
Maintenance Plan: TfsTransactionLogBackup
Duration: 00:00:00
Status: Succeeded.
Details:
Here's the contents of TfsTransactionLogBackup_Subplan_20070308180007.txt immediately after application of SP2:
Code Snippet
NEW COMPONENT OUTPUT
Microsoft(R) Server Maintenance Utility (Unicode) Version 9.0.3042
Report was generated on "TEAMSERVER".
Maintenance Plan: TfsTransactionLogBackup
Duration: 00:00:05
Status: Warning: One or more tasks failed..
Details:
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-03-08T18:00:02.
Task end: 2007-03-08T18:00:02.
Failed:(0) Database 'ReportServer' will not be backed up because it does not have its recovery model set to Full or BulkLogged.
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-03-08T18:00:02.
Task end: 2007-03-08T18:00:02.
Failed:(0) Database 'ReportServerTempDB' will not be backed up because it does not have its recovery model set to Full or BulkLogged.
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-03-08T18:00:03.
Task end: 2007-03-08T18:00:03.
Failed:(-1073548784) Executing the query "BACKUP LOG [ReportServer] TO DISK = N'E:\SQL Server\Database Services\MSSQL.1\MSSQL\Backup\ReportServer_backup_200703081800.trn' WITH NOFORMAT, NOINIT, NAME = N'ReportServer_backup_20070308180002', SKIP, REWIND, NOUNLOAD, STATS = 10
" failed with the following error: "The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
BACKUP LOG is terminating abnormally.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Command:BACKUP LOG [ReportServer] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupReportServer_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''ReportServer_backup_20070308180002'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [ReportServerTempDB] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupReportServerTempDB_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''ReportServerTempDB_backup_20070308180002'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsWorkItemTracking] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsWorkItemTracking_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsWorkItemTracking_backup_20070308180002'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsIntegration] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsIntegration_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsIntegration_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsVersionControl] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsVersionControl_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsVersionControl_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsWorkItemTrackingAttachments] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsWorkItemTrackingAttachments_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsWorkItemTrackingAttachments_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsActivityLogging] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsActivityLogging_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsActivityLogging_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsBuild] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsBuild_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsBuild_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [STS_Config_TFS] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupSTS_Config_TFS_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''STS_Config_TFS_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [STS_Content_TFS] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupSTS_Content_TFS_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''STS_Content_TFS_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TFSWarehouse] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTFSWarehouse_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TFSWarehouse_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-03-08T18:00:03.
Task end: 2007-03-08T18:00:03.
Failed:(-1073548784) Executing the query "BACKUP LOG [ReportServerTempDB] TO DISK = N'E:\SQL Server\Database Services\MSSQL.1\MSSQL\Backup\ReportServerTempDB_backup_200703081800.trn' WITH NOFORMAT, NOINIT, NAME = N'ReportServerTempDB_backup_20070308180002', SKIP, REWIND, NOUNLOAD, STATS = 10
" failed with the following error: "The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
BACKUP LOG is terminating abnormally.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Command:BACKUP LOG [ReportServer] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupReportServer_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''ReportServer_backup_20070308180002'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [ReportServerTempDB] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupReportServerTempDB_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''ReportServerTempDB_backup_20070308180002'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsWorkItemTracking] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsWorkItemTracking_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsWorkItemTracking_backup_20070308180002'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsIntegration] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsIntegration_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsIntegration_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsVersionControl] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsVersionControl_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsVersionControl_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsWorkItemTrackingAttachments] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsWorkItemTrackingAttachments_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsWorkItemTrackingAttachments_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsActivityLogging] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsActivityLogging_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsActivityLogging_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TfsBuild] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTfsBuild_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TfsBuild_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [STS_Config_TFS] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupSTS_Config_TFS_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''STS_Config_TFS_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [STS_Content_TFS] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupSTS_Content_TFS_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''STS_Content_TFS_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
GO
BACKUP LOG [TFSWarehouse] TO DISK = N''E:SQL ServerDatabase ServicesMSSQL.1MSSQLBackupTFSWarehouse_backup_200703081800.trn'' WITH NOFORMAT, NOINIT, NAME = N''TFSWarehouse_backup_20070308180003'', SKIP, REWIND, NOUNLOAD, STATS = 10
And here it is after the KB934458 has been applied:
Code Snippet
NEW COMPONENT OUTPUT
Microsoft(R) Server Maintenance Utility (Unicode) Version 9.0.3054
Report was generated on "TEAMSERVER".
Maintenance Plan: TfsTransactionLogBackup
Duration: 00:00:06
Status: Warning: One or more tasks failed..
Details:
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-05-01T08:00:03.
Task end: 2007-05-01T08:00:04.
Failed:(0) Database 'ReportServer' will not be backed up because it does not have its recovery model set to Full or BulkLogged.
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-05-01T08:00:03.
Task end: 2007-05-01T08:00:04.
Failed:(0) Database 'ReportServerTempDB' will not be backed up because it does not have its recovery model set to Full or BulkLogged.
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-05-01T08:00:04.
Task end: 2007-05-01T08:00:04.
Failed:(-1073548784) Executing the query "BACKUP LOG [ReportServer] TO DISK = N'E:\SQL Server\Database Services\MSSQL.1\MSSQL\Backup\ReportServer_backup_200705010800.trn' WITH NOFORMAT, NOINIT, NAME = N'ReportServer_backup_20070501080004', SKIP, REWIND, NOUNLOAD, STATS = 10
" failed with the following error: "The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
BACKUP LOG is terminating abnormally.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Back Up Database (Transaction Log) (TEAMSERVER)
Backup Database on Target server connection
Databases that have a compatibility level of 70 (SQL Server version 7.0) will be skipped.
Databases: All user databases
Type: Transaction Log
Append existing
Task start: 2007-05-01T08:00:04.
Task end: 2007-05-01T08:00:04.
Failed:(-1073548784) Executing the query "BACKUP LOG [ReportServerTempDB] TO DISK = N'E:\SQL Server\Database Services\MSSQL.1\MSSQL\Backup\ReportServerTempDB_backup_200705010800.trn' WITH NOFORMAT, NOINIT, NAME = N'ReportServerTempDB_backup_20070501080004', SKIP, REWIND, NOUNLOAD, STATS = 10
" failed with the following error: "The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
BACKUP LOG is terminating abnormally.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly
.
View 13 Replies
View Related