Informes: Sintaxis de reglas de IPDB

Document created by RSA Information Design and Development on Feb 9, 2017
Version 1Show Document
  • View in full screen mode
  

En este tema se describe la sintaxis soportada de reglas del servicio IPDB Extractor mediante descripciones y ejemplos de las sintaxis compatibles y no compatibles. Existe un conjunto limitado de sintaxis que puede usar para crear las reglas de los informes utilizando el servicio IPDB Extractor de esta versión. En este tema se incluye:

  • Descripciones de las sintaxis compatibles y no compatibles con ejemplos.
  • Funciones adicionales compatibles.
  • Operadores compatibles.
  • Ejemplos de consultas compatibles. 

Sintaxis compatible y no compatible

Cuando cree reglas que contengan consultas SQL contra la base de datos IPDB de esta versión, debe adherirse a las descripciones y ejemplos de sintaxis descritos en las tablas siguientes.

Sintaxis de valores literales (datos) compatible

                     
DescripciónEjemplos de sintaxis compatible
Para los datos de tipo texto o cadena, ingrese la cadena o el texto entre comillas simples. Si hay un carácter especial, como un apóstrofo (por ejemplo 'data'), use dos comillas simples, ''data'', para encerrar el valor de los datos. select msg.id where msg='(Primary) Link status ''Down'' on interface INTNAME.'
Para la fecha y la hora (columnas del tipo de datos fecha/registro de fecha y hora), use la sintaxis
aaaa-mmm-dd hh:mm:ss”.
select time where time = ‘2012-sep-04 13:09:03’
El sistema es compatible con direcciones IP literales.  Considera las columnas que contienen direcciones IP como cadenas/texto, de forma que utiliza el operador de comparación de cadenas para evaluar las expresiones.

Use los siguientes operadores para garantizar un procesamiento preciso:
  • = (es igual a)
  • != (no es igual a)
  • in (está contenido en)
  • not in (no está contenido en)
 

Sintaxis IN no compatible

             
DescripciónEjemplos de sintaxis no compatible
Security Analytics no es compatible con el uso de in en las direcciones IPselect ip.src where ip.src in between 'n.n.n.n' and 'n.n.n.n'

Sintaxis LIKE no compatible

             
DescripciónEjemplos de sintaxis no compatible
Security Analytics no es compatible con () for likeuser.dst not like ('%')

Sintaxis LIST compatible

               
DescripciónEjemplos de sintaxis compatible
Coloque una lista entre paréntesis en el campo de la cláusula where.

Use el operador IN.

Debe encerrar los valores en una lista en comillas simples, excepto lossiguientes valores:
  • caracteres alfanuméricos
  • : (dos puntos)
  • _ (guion bajo)
  • . (punto)
select ip.src,ip.dst where ip.dst IN ($[LIST])

Sintaxis LIST no compatible

                 
DescripciónEjemplos de sintaxis no compatible
No omita los paréntesis.select ip.src,ip.dst where ip.dst IN $[LIST]
No omita el operador IN.select ip.src,ip.dst where ip.dst =($[LIST])

Sintaxis variable compatible

Cuando asigna el valor de la variable en una configuración de ejecución, debe ingresar el valor entre comillas simples: 'value'.

           
DescripciónEjemplos de sintaxis compatible
Inserte $ antes de una variable.

Encierre una variable en llaves.
columnname=${variable}

Sintaxis variable no compatible

                   
DescripciónEjemplos de sintaxis no compatible
No omita el símbolo $.columnname={variable}
No omita las llaves.columnname=$variable    
No sustituya las llaves con paréntesis.columnname=$[variable]

Sintaxis de la cláusula select compatible

Debe incluir las columnas order by y group by en las cláusulas select.

                         
DescripciónEjemplos de sintaxis compatible
Seleccione todas las columnas de un origen de datos de IPDB.select *
Seleccione columnas específicas de un origen de datos de IPDB (debe separar cada columna con una coma). select column1,column2,column3,...,columnN
Use distinct en una cláusula select. Debe encerrar la columna en paréntesis cuando use distinct.select distinct(column1)
Use funciones de agregación en la cláusula select. Consulte “Funciones de agregación compatibles”, a continuación, para conocer una completa lista de las funciones de agregación compatibles en esta versión que contiene este artículo.select count(msg.id)

select count(distinct(msg.id))

Sintaxis de la cláusula select no compatible

                           
DescripciónEjemplos de sintaxis no compatible
No encierre los nombres de las columnas en paréntesis a menos que desee especificar un agregado. En el siguiente ejemplo se representa un uso no compatible de los paréntesis.select (msg.id), (ip.src)
No use columnas calculadas. En el siguiente ejemplo se representa un uso no compatible de columnas calculadas.select msg.id+100, ip.src
No use alias de columnas (con o sin AS). El siguiente ejemplo representa un uso no compatible de los alias de columnas.select msg.id as ID, ip.src SRC
Security Analytics no es compatible con la función Lower de las cláusulas select. 

Sintaxis de la cláusula where compatible

Debe incluir las columnas ordenar por y agrupar por en las cláusulas where.

                                                 
DescripciónEjemplos de sintaxis compatible
Encierre un valor comillas simples si el valor incluye un espacio. La siguiente sintaxis está incorrecta:

where msg = Auth start for user USERNAME from 20.20.20.2/20 to 10.10.10.1/10.
where msg = 'Auth start for user USERNAME from 20.20.20.2/20 to 10.10.10.1/10'
Ingrese un valor entre comillas simples si el valor
incluye caracteres especiales. No debe encerrar los siguientes caracteres en comillas simples:
  • caracteres alfanuméricos
  • : (dos puntos)
  • _ (guion bajo)
  • . (punto)

La siguiente sintaxis no funciona:

select url,size
  device spec: device-specifications
  where url = http://1.1.1.1//tsweb/images
   /clear.gif

La siguiente sintaxis no funciona:

where url = some/urls/string

La siguiente sintaxis no funciona:

where msg = Failover cable OK.

La siguiente sintaxis funciona:

where msg.id = 101001:10

La siguiente sintaxis funciona:

select url,size
device spec: device-specifications
where url = 'http://1.1.1.1//tsweb/images/clear.gif'

La siguiente sintaxis funciona:

where url = 'some/urls/string'

La siguiente sintaxis funciona:

where msg = ‘Failover cable OK.’
Use esta sintaxis para expresar una condición de filtro.column1 <operator> 'value'
Use esta sintaxis para los operadores y/o buleanos, o buleanos. Consulte “Operadores compatibles” a continuación, para obtener una lista completa de los operadores compatibles con esta versión.column1 <operator> 'value' and column2<operator'value' or column1 <operator> 'value' 
Use esta sintaxis para comprobar valores nulos.column1 is null

column1 is not null
Use esta comprobación de sintaxis para la membresía que utiliza el operador in.column1 in ('value1','value2',...,'valueN')

column1 not in ('value1','value2',...,'valueN')
Use esta sintaxis para especificar un rango mediante el uso del operador between.column1 between 'value1' and 'value2'

column1 not between 'value1' and 'value2'
Use esta sintaxis para comparar una cadena utilizando el operador like.column1 like 'value'

column1 not like 'value'
Use esta sintaxis para buscar patrones utilizando el comodín % con el operador like.select msg.id where msg like 'ip%'
Use la función Lower para omitir las mayúsculas y minúsculas en las búsquedas de la cláusula where.

Puede asociar la función Lower en una cláusula where con el tipo de columna TEXTO de manera exclusiva.  Si especifica Lower con un tipo de columna distinto de TEXTO, Security Analytics muestra un mensaje de error.

Security Analytics no es compatible con la función para los operadores BETWEEN, IN y NOT NULL.
Lower(columnName) like ‘some%’
Lower(columnName) like lower(‘some%’)

 Sintaxis de la cláusula where no compatible

                 
DescripciónEjemplos de sintaxis no compatible
No use consultas anidadas.select msg.id where msg.id in (select msg.id from table where ip.src = '1.1.1.1')
No use la función Lower para los operadores BETWEEN, IN y NOT NULL. 

Sintaxis de la cláusula order by compatible

La función order by no distingue mayúsculas de minúsculas.

                   
DescripciónEjemplos de sintaxis compatible

Use esta sintaxis para ejecutar clasificaciones ascendentes (asc) y descendentes (desc) con order by.

  • order by size asc
  • order by msg desc
  • order by size asc, msg desc
  • order by count(size) asc

Solo encierre los nombres de columnas en paréntesis si desea aplicar una función adicional a la columna. El siguiente ejemplo representa un uso no válido de los paréntesis en una cláusula order by:

order by (count(size)) asc

order by count(size) asc

Sintaxis de la cláusula group by compatible

               
DescripciónEjemplos de sintaxis compatible
Use esta sintaxis para agrupar una o más columnas. No ingrese los nombres de columnas entre paréntesis. La función group by no distingue mayúsculas de minúsculas.
  • group by size
  • group by msg

Funciones adicionales compatibles

El servicio IPDB Extractor es compatible con las siguientes funciones y sintaxis de agregación en esta versión.

  • count
  • máx.
  • min
  • sum
  • avg

Puede usar distinct con funciones de agregación, como se muestra en la siguiente sintaxis:

  • count(distinct)
  • max(distinct)
  • min(distinct)
  • sum(distinct)
  • avg(distinct)

Operadores admitidos

                                                 
OperadorSintaxis
= (es igual a)column1 = 'value'
!= (no es igual a)column1 != 'value'
<= (menor que o igual que)column1 <= 'value'
>= (mayor que o igual que)column1 >= 'value'
<(menor que)column1 < 'value'
>(mayor que)column1 > 'value'
INcolumn1 NOT ('value1','value2',...,'valueN')

column1 not in ('value1','value2',...,'valueN')
between (rango entre dos valores)column1 between 'value1' and 'value2'

column1 NOT between 'value1' and 'value2'
and, or, NOT (buleano)condition1 and condition2

condition1 or condition2

condition1 not in ('value1','value2',...,'valueN')
likecolumn1 like 'value'

column1 not like 'value'

Ejemplo de consultas compatibles

select msg.id, ip.src, ip.dst, user.dst where size is not null

select msg.id, size, ip.srcport where msg.id='109007' and size not between '10' and '20'

select max(distinct(size)) where msg.id in ('109007','109001')

select * where size != '99' and ip.src = '20.20.20.2'

select ip.srcport,ip.dstport where ip.dst != '225.31.125.90' order by ip.dstport asc

select ip.srcport,ip.dstport where ip.dst != '225.31.125.90' order by ip.dstport asc,ip.srcport desc

select ip.srcport,ip.dstport where ip.dst != '225.31.125.90' group by ip.srcport,ip.dstport order by min(distinct(ip.dstport)) asc, sum(distinct(ip.srcport)) desc

select time where time = ‘2012-sep-04 13:09:03’

select * where ip.src = '20.20.20.2' and ip.dst != '10.31.125.90' or ip.dst!= '225.31.125.90'

Ejemplo de consultas no compatibles

                                           
Consulta no compatibleMotivo
select (msg.id), (ip.src), ip.dst, user.dst where size is not null.No puede encerrar columnas en paréntesis.
select msg.id where msg.id IN (select msg.id from table where ip.src = ‘1.1.1.1’)No puede usar una selección anidada (subconsulta) para obtener el campo msg.id en otra condición.
select ip.src where ip.src in between ’10.10.10.1’ and ’10.10.9.1’Puede usar el operador between solamente con tipos de datos numéricos y de fecha y hora.
select ip.srcport,ip.dstport where ip.dst != '225.31.125.90' order by count(distinct ip.dstport) ascCuando usa distinct o cualquier otra función de agregación, debe encerrar el nombre de la columna en paréntesis.
select ip.srcport,ip.dstport where ip.dst != '225.31.125.90' order by (ip.dstport) asc,(ip.srcport) descNo puede encerrar los nombres de columna en paréntesis.
select ip.srcport,ip.dstport where ip.dst != '225.31.125.90' group by ip.srcport,ip.dstport order by COUNT((ipsrcport))Solo puede usar un par de paréntesis para encerrar los nombres de columna. El sistema trata varios conjuntos de paréntesis como expresiones anidadas, las cuales no son compatibles.
select time where time = ‘1999-NOVEMBER-01 10:10:10’El formato de registro de fecha y hora es incorrecto.
select time where time = ‘2012-11-11 10:10:10’El formato de registro de fecha y hora es incorrecto.
You are here
Table of Contents > Trabajo con reglas de Reporting > Descripción general de una regla > Sintaxis de reglas de IPDB

Attachments

    Outcomes