在liferay 6.2数据库上执行查询

时间:2017-02-13 16:42:56

标签: sql sql-server liferay liferay-6.2

使用监控Microsoft SQL Server数据库中查询的第三方软件,以下查询似乎每天执行70000次以上!

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  

有谁知道这是为了什么目的?

2 个答案:

答案 0 :(得分:1)

查看输出,似乎确定了运行它的数据库的对象。它获取数据库名称,架构,所有者,对象名称,然后将其转换为显示系统表,表或视图。

看起来有些变量正在传递给它,因此很可能会查询特定对象。

这是来自应用程序,如果是这样,它是否可以成为安全模型的一部分?如果在此查询之前或之后运行任何一致查询以查看是否可以看到触发它的内容,您是否可以追踪?

答案 1 :(得分:0)

使用程序ExpressProfiler,我追踪到上述查询实际上是门户的Miscrosoft SQL Server数据库中的系统存储过程,名称为 sys.sp_tables 。由于某种原因,门户网站会使用不同的变量多次自动调用它。