
[dbo].[ca_discovered_software]
CREATE TABLE [dbo].[ca_discovered_software]
(
[sw_def_uuid] [binary] (16) NULL,
[dis_sw_uuid] [binary] (16) NOT NULL,
[label] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[serial_number] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[creation_user] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[creation_date] [int] NULL,
[last_update_user] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[product_guid] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[version_number] [int] NULL CONSTRAINT [DF__ca_discov__versi__1F83A428] DEFAULT ((0)),
[last_update_date] [int] NULL,
[install_path] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[last_accessed] [int] NULL,
[asset_source_uuid] [binary] (16) NULL,
[license_uuid] [binary] (16) NULL,
[auto_rep_version] [timestamp] NULL,
[exclude_registration] [int] NULL,
[delete_time] [int] NULL,
[is_managed_by_service] [tinyint] NULL,
[is_ignored_by_vuln_impact] [tinyint] NULL,
[trustlevel] [int] NULL CONSTRAINT [ca_discovered_software_tl] DEFAULT ((5)),
[origin] [nvarchar] (64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[def_source_type_id] [int] NULL CONSTRAINT [ca_discovered_software_dsid] DEFAULT ((0)),
[dis_source_type_id] [int] NULL CONSTRAINT [ca_discovered_software_dstid] DEFAULT ((0)),
[license_id] [int] NULL CONSTRAINT [DF__ca_discov__licen__4C11C13D] DEFAULT ((0)),
[license_instance] [int] NULL,
[license_block_id] [int] NULL,
[covered_by_nf] [smallint] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE TRIGGER al_c_discovered_software ON ca_discovered_software
AFTER INSERT
AS
BEGIN
if dbo.is_installed(2022) = 0
return
DECLARE @swdefuuid binary(16)
DECLARE @productuuid binary(16)
DECLARE @blockid int
DECLARE @evaluate smallint
DECLARE @processing smallint
DECLARE @lastupdatedate int
select @lastupdatedate = datediff(ss, '1/1/1970', getutcdate())
DECLARE mycur CURSOR FOR
Select distinct b.product_uuid
From inserted join ca_link_sw_def a
on inserted.sw_def_uuid=a.secondary_sw_def_uuid
And a.link_type_id=3
join al_link_product_sw_def b on a.PRIMARY_sw_def_uuid = b.sw_def_uuid
OPEN mycur
FETCH NEXT FROM mycur INTO @productuuid
WHILE @@FETCH_STATUS = 0
BEGIN
Select @blockid=b.block_id, @evaluate=b.evaluate, @processing=b.processing
from al_link_product_block a join al_license_block b
on a.block_id=b.block_id
Where a.product_uuid=@productuuid And b.finite=1 AND b.evaluate<>-1
Update al_link_product_block Set discovery_changed = 1
Where block_id=@blockid And product_uuid=@productuuid And discovery_changed <> 1
if @evaluate=0
Update al_license_block Set evaluate=2, last_update_date=@lastupdatedate
Where block_id=@blockid And evaluate <> 2
else if @evaluate=2 and @processing=1
Update al_license_block Set processing=2, last_update_date=@lastupdatedate
Where block_id=@blockid And processing <> 2
FETCH NEXT FROM mycur INTO @productuuid
END
CLOSE mycur
DEALLOCATE mycur
END
GO
CREATE TRIGGER al_d_discovered_software ON ca_discovered_software
AFTER DELETE
AS
BEGIN
if dbo.is_installed(2022) = 0
return
DECLARE @swdefuuid binary(16)
DECLARE @productuuid binary(16)
DECLARE @blockid int
DECLARE @evaluate smallint
DECLARE @processing smallint
DECLARE @lastupdatedate int
select @lastupdatedate = datediff(ss, '1/1/1970', getutcdate())
DECLARE mycur CURSOR FOR
Select distinct b.product_uuid
From deleted join ca_link_sw_def a
on deleted.sw_def_uuid=a.secondary_sw_def_uuid
And a.link_type_id=3
join al_link_product_sw_def b on a.PRIMARY_sw_def_uuid = b.sw_def_uuid
OPEN mycur
FETCH NEXT FROM mycur INTO @productuuid
WHILE @@FETCH_STATUS = 0
BEGIN
Select @blockid=b.block_id, @evaluate=b.evaluate, @processing=b.processing
from al_link_product_block a join al_license_block b
on a.block_id=b.block_id
Where a.product_uuid=@productuuid And b.finite=1 AND b.evaluate<>-1
Update al_link_product_block Set discovery_changed = 1
Where block_id=@blockid And product_uuid=@productuuid And discovery_changed <> 1
if @evaluate=0
Update al_license_block Set evaluate=2, last_update_date=@lastupdatedate
Where block_id=@blockid And evaluate <> 2
else if @evaluate=2 and @processing=1
Update al_license_block Set processing=2, last_update_date=@lastupdatedate
Where block_id=@blockid And processing <> 2
FETCH NEXT FROM mycur INTO @productuuid
END
CLOSE mycur
DEALLOCATE mycur
END
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE trigger r_upd_verno_dis_sw
on ca_discovered_software
after update
as
declare @old_verno as int;
declare @new_verno as int;
begin
if update (version_number)
begin
DECLARE mycur CURSOR
FOR select deleted.version_number, inserted.version_number from inserted, deleted
OPEN mycur
FETCH NEXT FROM mycur INTO @old_verno,@new_verno
WHILE @@FETCH_STATUS = 0
BEGIN
execute p_integrity_version_number @old_verno , @new_verno ;
FETCH NEXT FROM mycur INTO @old_verno,@new_verno;
END
CLOSE mycur
DEALLOCATE mycur
end;
end;
GO
ALTER TABLE [dbo].[ca_discovered_software] ADD CONSTRAINT [XPKca_discovered_software] PRIMARY KEY CLUSTERED ([dis_sw_uuid]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ca_disc_software_idx_02] ON [dbo].[ca_discovered_software] ([asset_source_uuid]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ca_disc_software_idx_05] ON [dbo].[ca_discovered_software] ([auto_rep_version], [sw_def_uuid]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ca_disc_software_idx_06] ON [dbo].[ca_discovered_software] ([sw_def_uuid]) INCLUDE ([asset_source_uuid], [covered_by_nf], [creation_date], [dis_sw_uuid], [license_block_id], [license_id], [license_instance]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ca_disc_software_idx_04] ON [dbo].[ca_discovered_software] ([last_update_date]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ca_disc_software_idx_03] ON [dbo].[ca_discovered_software] ([license_uuid]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [ca_disc_software_idx_01] ON [dbo].[ca_discovered_software] ([sw_def_uuid]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ca_discovered_software] ADD CONSTRAINT [$ca_di_r000002be00000000] FOREIGN KEY ([license_uuid]) REFERENCES [dbo].[ca_software_license] ([license_uuid])
GO
ALTER TABLE [dbo].[ca_discovered_software] ADD CONSTRAINT [$ca_di_r000002c700000000] FOREIGN KEY ([asset_source_uuid]) REFERENCES [dbo].[ca_asset_source] ([asset_source_uuid])
GO
ALTER TABLE [dbo].[ca_discovered_software] ADD CONSTRAINT [$ca_di_r000002d000000000] FOREIGN KEY ([sw_def_uuid]) REFERENCES [dbo].[ca_software_def] ([sw_def_uuid])
GO
GRANT SELECT ON [dbo].[ca_discovered_software] TO [aiadmin]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [ams_group]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [amsgroup]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [ca_itrm_group]
GRANT INSERT ON [dbo].[ca_discovered_software] TO [ca_itrm_group]
GRANT DELETE ON [dbo].[ca_discovered_software] TO [ca_itrm_group]
GRANT UPDATE ON [dbo].[ca_discovered_software] TO [ca_itrm_group]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [ca_itrm_group_ams]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [regadmin]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [swcmadmin]
GRANT INSERT ON [dbo].[ca_discovered_software] TO [swcmadmin]
GRANT DELETE ON [dbo].[ca_discovered_software] TO [swcmadmin]
GRANT UPDATE ON [dbo].[ca_discovered_software] TO [swcmadmin]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [uapmadmin]
GRANT INSERT ON [dbo].[ca_discovered_software] TO [uapmadmin]
GRANT DELETE ON [dbo].[ca_discovered_software] TO [uapmadmin]
GRANT UPDATE ON [dbo].[ca_discovered_software] TO [uapmadmin]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [uapmadmin_group]
GRANT INSERT ON [dbo].[ca_discovered_software] TO [uapmadmin_group]
GRANT DELETE ON [dbo].[ca_discovered_software] TO [uapmadmin_group]
GRANT UPDATE ON [dbo].[ca_discovered_software] TO [uapmadmin_group]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [uapmbatch]
GRANT INSERT ON [dbo].[ca_discovered_software] TO [uapmbatch]
GRANT DELETE ON [dbo].[ca_discovered_software] TO [uapmbatch]
GRANT UPDATE ON [dbo].[ca_discovered_software] TO [uapmbatch]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [uapmbatch_group]
GRANT INSERT ON [dbo].[ca_discovered_software] TO [uapmbatch_group]
GRANT DELETE ON [dbo].[ca_discovered_software] TO [uapmbatch_group]
GRANT UPDATE ON [dbo].[ca_discovered_software] TO [uapmbatch_group]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [uapmreporting]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [uapmreporting_group]
GRANT SELECT ON [dbo].[ca_discovered_software] TO [upmuser_group]
GO