DBDefence and Service Broker
By default DBDefence prevent any calls to the procedures. The
same is applied when Service Broker calls message handling
procedure. You need to exclude handling procedure with security
exceptions. Additionally you must
consider that before calling your handler SQL Server will try to
resolve all referenced object: another stored procedures,
functions, tables and queues. Most probably you do not want to list
all objects and would like to keep them protected. The solution
would be rename original
handler procedure, say, HandleBackup to HandleBackup1, but new
HandleBackup will look like that:
create PROCEDURE [dbo].[HandleBackUp]
AS
/* This is not necessary but we check who
call the procedure. System
process such as Service Broker do not have login. If we are called
by
real user we return because of security reason */
declare @a nvarchar (20)
select @a=original_login()
if (@a <> N'') return
/* End of security check */
// open access to the database
open symmetric key dbdx decryption by password='111'
/* Here we call real procure using late binding. HandleBackup1
will
be resolved and called only after open key statement. */
execute "HandleBackup1"
// close access
close symmetric key dbdx
If you have any problems with service broker please do not
hesitate to contact support@dbdefence.com
|