2017-02-13 4 views
0

Использование стороннего программного обеспечения, которое отслеживает запросы в базе данных сервера Microsoft SQL, выглядит следующим образом: 70000 раз в день!Запрос, выполненный в базе данных liferay 6.2

select 
TABLE_QUALIFIER = convert(sysname,db_name()), 
TABLE_OWNER = convert(sysname,schema_name(o.schema_id)), 
TABLE_NAME = convert(sysname,o.name), 
TABLE_TYPE = convert(varchar(32), 
rtrim(substring('SYSTEM TABLE   TABLE  VIEW  ', 
(ascii(o.type)-83)*12+1, 
12)) -- 'S'=0,'U'=2,'V'=3 

), 
REMARKS = convert(varchar(254),null) -- Remarks are NULL. 

from 
sys.all_objects o 
where 
o.type in ('S','U','V') and 
has_perms_by_name(quotename(schema_name(o.schema_id)) + '.' +  quotename(o.name), 
'object', 
'select') = 1 and 
charindex(substring(o.type,1,1),@type1) <> 0 and -- Only desired types. 

(@table_name is NULL or o.name like @table_name) and 
(@table_owner is NULL or schema_name(o.schema_id) like @table_owner) 
order by 4, 
1, 
2, 
3 

Кто-нибудь знает, Какова цель этого?

ответ

1

Глядя на выход, он, кажется, констатирует объекты для базы данных, с которой он работает. Он получает имя базы данных, схему, владельца, имя объекта, затем преобразует его, чтобы показать либо системную таблицу, таблицу или представление.

Похоже, что некоторые переменные передаются в это, поэтому более чем вероятно запросы к конкретным объектам.

Приходит ли это из приложения, если да, может ли оно быть частью модели безопасности? Можете ли вы проследить, есть ли какие-либо согласованные запросы, выполняемые до этого, или после этого запроса, чтобы увидеть, можете ли вы увидеть, что вызывает его?

0

Используя программу ExpressProfiler, я проследил, что вышеупомянутый запрос был фактически система хранимой процедуры в базе данных SQL Server Miscrosoft портала с именем sys.sp_tables. По какой-то причине он автоматически вызывается порталом много раз с разными переменными.