Run Toad Freeware on Linux!:
Install WineTricks to improve Wine reliability ( http://wiki.winehq.org/winetricks)
wget http://www.kegel.com/wine/winetricks
sh winetricks corefonts vcrun6
Install Toad for Oracle freeware
Download freeware files: toad_free.zip and freeware_update.zip
Unzip toadfree.zip file into a temporary directory (e.g. /home/user/temp)
Open a Linux command window and cd to that temporary directory
Wine toad freeware install.exe (remember to use \ before spaces)
Unzip freeware_update.zip file into /home/user/.wine/c_drive/Program Files/Quest Software/Toad for Oracle FREEWARE
Install Oracle 10g (not 11g) Client 32-bit for Windows
Download Oracle 10g 32-bit client file: 10201_cleint_win32.zip
unzip 10201_cleint_win32.zip file into a temporary directory
open a command window and cd to that temporary directory
cd again into the client directory and wine setup.exe
Make sure to set Oracle Installer’s Oracle Home directory to a Wine subdirectory such as /home/user/.wine/c_drive/oracle/product/10g/client
Optional Step: copy and/or create a tnsnames.ora file in that directory
Run Toad via the Linux Application Main Menu -> Wine -> Programs -> Quest Software -> Toad for Oracle Freeware
-------------------------------------------------------------------------------------------------------------------------------
SOAP-UI:
Installation
Download the Linux binary zip (no JRE) from http://www.soapui.org/
Unzip it into a preferable directory such as your home folder or /opt
Make sure that you have proper permissions on the unziped soapUI folder
Go into the folder and run $ bin/soapui.sh (open source)
Download Oracle WebLogic Server 10.3.6:
http://uanscarvalho.com.br/instalacao-oracle-soasuite-11g-parte-3-oracle-weblogic-server-10-3-6/
http://www.oracle.com/technetwork/middleware/soasuite/downloads/soasuite11gdownload-2210918.html
wls1036_generic.jar
sudo chmod 777 wls1036_generic.jar
java -jar wls1036_generic.jar
paso siguiente configurar dominio weblogic o exportar desde plantilla.
Primero las integraciones de SOAP inicialmente son XML o String, JSON, pero cuando se necesita enviar mas información y se debe asegurar la integridad de la misma y se dispone del ancho de banda necesario, se envia bajo el formato XML datos binarios (XOP), son paquetes de datos en XML optimizados.
Este protocolo proporciona una formar de referenciar de manera fiable los datos externos desde dentro de un documento XML. Por ejemplo, la especificación SOAP con Adjuntos decía que el dato binario podía enviarse como parte de un documento MIME multipart, donde el dato XML componía la primera parte, y el dato binario incorporado, como partes adicionales. El problema de esto es que, aunque su programa pueda desconocer la existencia del dato, el documento no. Tampoco permite la optimización selectiva del documento, o el procesamiento retroactivo de un documento existente que incluya datos binarios.
XOP mejora esta situación mediante el suministro de un mecanismo por el cual se puede extraer selectivamente la información que debe ser optimizada, la incorpora a un mensaje MIME multipart que también incluye nuestro mensaje SOAP, y hace una referencia directa a él. Veamos un ejemplo.
SOAP, datos binarios, y Axis2
El proceso de utilización de XOP en documentos SOAP se denomina MTOM (para Mecanismo de optimización de transmisión de mensajes SOAP). Axis2 proporciona soporte para esta forma de trabajo con datos SOAP, pero usted debe asegurarse de configurar la aplicación de manera apropiada.
Ahora el BUS OSB proporciona soporte para tratar archivos adjuntos tanto en el mensaje de la petición y la respuesta. Solo hay que definir en el Proxy el tipo de datos que se adjuntan en la respuesta.
EJ:
Observando el esquema en el objeto Response viene adjunto un archivo como respuesta.
En el proxy agregar en la configuración de mensajes el soporte para archivos XOP/MTOM.
Por el surgimiento de la
Arquitectura Orientada a Servicios (SOA) y de la necesidad que tienen los
clientes de comunicarse con socios y demás. Dentro del contexto de una
arquitectura orientada a servicios se destaca el concepto "Bus de
servicios", cuyo objetivo es proveer una capa de virtualización de
servicios entre los proveedores y los clientes. Si hacemos referencia a la
matriz de madurez que provee The Open Group (www.opengroup.org) llamada OSIMM
(Open group Service Integration Maturity Model), el Bus de Servicios es el
encargado de cumplir con el nivel de madurez llamado "Servicios
Virtualizados".
Es muy importante contar con esta
capa de virtualización pues de esta manera los clientes no consumirán
directamente los servicios expuestos por los proveedores, proporcionando
agilidad para poder realizar transformaciones, orquestaciones, cambio en
interfaces y desacoplamiento entre los servicios expuestos y/o los servicios
consumidores.
Beneficios
de utilizar OSB:
•
Virtualización de Servicios
• Ruteos
• Orquestamiento
• Cambio en interfaces
• SLA's a nivel de servicios
• Balanceo entre varios servicios desplegados en distintos servidores
• Desacoplamiento entre los clientes y los proveedores
• Aseguramiento de Servicios
• Agilidad en los cambios de interfaces
• Migraciones virtuales de servicios
• Cambios ágiles en las interfaces sin afectar a los clientes
Los componentes elementales del
bus de servicios son dos:
1.
Business Service
2. Proxy Service
Business
Service:Es el
servicio final que expone un determinado proveedor. Proxy Service:Es un
servicio virtual que provee el bus de servicios y en el cual se puede realizar
ruteos, orquestaciones y demás.
Flujo de
datos:
Un cliente consume el servicio
virtual expuesto por el bus de servicios, dentro de éste servicio virtual
(Proxy Service) se realiza algunas transformaciones y/o ruteos, luego los datos
transformados son enviados al servicio final (Business Service), éste procesa
la información y nuevamente regresa el resultado al servicio virtual, para
después ser entregado al cliente.
En la siguiente imagen se puede
observar cómo interactúa el "Business Service" con el "Proxy
Service":
Teniendo ya todo instalado solo necesitamos
el WSDL y el XSD del webservice SOAP que queremos exponer, se puede obtener
desde la consola en donde publicamos el proyecto SOAP.
Teniendo el archivo se pueden crear los proyectos de dos
formas usando la consola de administración del OSB: IP:PUERTO/sbconsole
La Consola tiene inconvenientes como timeout de sesión, algunos cambios
se demoran en guardar, navegación en muchas pantallas, se pierden cambios entre
sesiones si no se es ordenado, las modificaciones sobre un mismo proyecto son
complicadas, no hay mantención de los aplicativos, no se puede llevar un
respaldo un error y se pueden perder los proyectos por un error humano o error
de configuración de servidor.
Tratando de parsear el XML con la librería existente en la maquina Redhat.
Pero al momento de compilar me arroja los siguientes errores, los
cuales no he podido resolver durante la mañana:
SDP.c:(.text+0x13d5): undefined reference to `xmlParseMemory'
SDP.c:(.text+0x13ec): undefined reference to `xmlDocGetRootElement'
SDP.c:(.text+0x1403): undefined reference to `xmlFreeDoc'
SDP.c:(.text+0x141b): undefined reference to `xmlStrcmp'
SDP.c:(.text+0x142b): undefined reference to `xmlFreeDoc'
En el archivo SDP.c hago la referencia a la libreria:
checking for libxml2 config script... /usr/bin/xml2-config
checking if libxml2 is at least v2.6.29... no, 2.6.26
configure: error: NOTE: libxml2 library must be at least 2.6.29
Actualizar la librería:
libxml2-2.9.1.tar.gz
$ wget -i ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz
$ tar -xvf libxml2-2.9.4.tar.gz
Esta linea al entrar al directorio descomprimido le damos una ruta alternativa donde configurar los fuentes resultantes, ya que generalmente en una maquina de desarrollo no tenemos permisos de ROOT para instalar el paquete completo en la maquina, por lo que opte por descomprimir en un directorio distinto al tipo /opt o el /usr
En el codigo editar las referencias a las cabeceras de las librerias de la LIBXML2: Compilar y al pasar a produccion tener el cuidado de sacar la ruta de desarrollo en donde quedo la libreria compilada : /cons/cons/libxml2/libxml/bin/
Para confeccionar las pruebas de Stress prepare varios archivos con los móviles por ej para utilizar distinto orden de los móviles para poder hacer una creación con móviles padres existentes:
sort -n -r msisdn2x2.txt > msisdn2x2Inv.txt
Luego de esto confeccione otro archivo con 4 columnas con tanda de 500 móviles cada fila uno con los msisdn como venían ordenados fila 1 y fila 2 o la fila 2 y 4 con el orden invertido.
Para aplicar el AWK solo se debe tener en cuenta que solo funciona con String y se debe tener cuidado con las comillas ( "" ), para ello los XML de entrada las reemplace por @
Como el archivo debe ir un String con : SOAPAction OPERACION| Las variables $1 y $2 corresponden a las columnas del archivo : "moviles/msisdn2x2.txt"
el comando sed es para reemplazar caracteres sed 's/@/"/g' reemplaza el string "@" por " y elimina los espacios entre caracteres. manual/gawk.html Para el problema de reemplazo de móviles con varios registros se deben confeccionar archivos de prueba con los Request de peticiones SOAP y se deben enviar varias variables por cada linea que se lea del archivo de pruebas, es necesario usar AWK. //cambio de numero $1 padre inicial del 1 al 500 y numero nuevo $2 del 501 al 1000
awk '{print "@SOAPAction: changeMDNumber@|"$1""$2""}' moviles/msisdn2x2.txt | sed 's/@/"/g' > changeMDNumberMultiSmart.txt
Mr. Robot es una serie de televisión estadounidense creada por Sam Esmail.1 Se estrenó el 24 de junio de 2015 en la cadena USA Network. La serie sigue a Elliot Alderson (Rami Malek), un joven hacktivista que sufre de fobia social, depresión clínica y delirios3 , trabaja como ingeniero de seguridad informática y usa sus habilidades para proteger a las personas por las que se preocupa. Elliot es reclutado por Mr. Robot (Christian Slater), el misterioso líder de un grupo de hacktivistas que quiere destruir a poderosos empresarios de multinacionales que están manejando el mundo.
La temática de la serie revela algunos temas conocidos como el uso de linux en especial la favorita es Kali Linux es una distribución basada en Debian GNU/Linux diseñada principalmente para la auditoría y seguridad informática en general. Fue fundada y es mantenida por Offensive Security Ltd. Mati Aharoni and Devon Kearns, ambos pertenecientes al equipo de Offensive Security, desarrollaron la distribución a partir de la reescritura de BackTrack, que se podría denominar como la antecesora de Kali Linux. En varios capítulos los protagonistas hacen uso de esta distro en Raspberry Pi, en un capitulo se ve que Darlene via fono le pide activar las conexiones de red a Angela Moss desde su terminal, para ello debe iniciar Kali Linux desde USB:
En otra escena se puede ver a Eliot llegando a su casa y fabricando una antena de WIFI con un embace de papas fritas para aumentar la seña de recepción y usar la WIFI del vencino.
En la primera temporada se puede ver a Eliot con Tyrell teniendo la discusión filosófica de cual es el entorno de escritorio es el mejor Gnome o KDE:
O en el primer capitulo donde se puede ver un ataque de DDoS que resulto ser un rootkit en los servidores de E Corp:
En otro capitulo se puede ver el uso de herramientas como osTicket:
osTicket es un Sistema de Soporte al cliente a través de Internet, totalmente automatizado y con capacidad para integrar numerosos teleoperadores y tareas automáticas. osTicket funciona protocolos como perl gateway, pop3, gestiona un número ilimitado de emails, etc.
La Administración incorpora acciones de borrado de tickets de la base de datos, creación de categorías y representantes, creación de grupos, implantación de alertas y un largo etcétera.
Características:
Categorías y Representantes
Flujos de E-mail
Conexiones Pop3
Direcciones de correo ilimitadas
Monitorización de Operadores
Seguimiento de Visitantes
Auto asignación de Tickets
Paneles de Administración
Paneles de Operadores
Paneles de Usuarios
Alertas para dispositivos móviles
etc.
Para realizar el hackeo a E Corp utilizan una van robada utilizando una vulnerabilidad conocida en los CPU de los autos: hackers-remotely-kill-jeep-highway
En el capitulo 9 de la segunda temporada se usa el pwn phone para hackear al dark army, de hecho este telefono viene con Kali Linux preinstalado con todas sus herramientas, en el video del demo se puede ver como usa el pwn para obtener la cuenta de google de la victima usando una red wifi abierta y robandoles las credenciales con una pagina falsa de login de google.
Existen técnicas y maneras de conseguir acceso físico a un equipo y
explotar las vulnerabilidades, y lo único que hay que hacer es forzar
los condicionantes adecuados para poder llevarlo a cabo. Perder de vista
el equipo o prestarlo a un amigo un momento para revisar las novedades
de algún blog, o separarte de tu escritorio por unos momentos para ir al
lavabo, es tiempo suficiente para que un atacante pueda llegar y
enchufar un dispositivo como el “USB Rubber Ducky”.
Este dispositivo es un teclado programado con forma de USB
que nada más conectarse comienza a escribir en el equipo de forma
automatizada, para lanzar programas y herramientas que bien pueden estar
en el equipo víctima o cargados en la memoria Micro SD que lleva incluida.
En cuestión de segundos tendría acceso a información que se podría subir automáticamente a un servidor FTP u otro sitio. Algo parecido a lo que se explicaba con USB Dumper, pero al revés, es decir, en lugar de ser el servidor el malicioso que roba los datos del USB, sería USB Rubber Ducky el que robaría los datos al equipo.
¿Qué es USB Rubber Ducky?
Casi todos los sistemas operativos de computadoras portátiles, tablets o
smartphones permiten la comunicación con el usuario a través de los
teclados USB. Es por eso que hay una especificación en el estándar USB ubicua conocida como HID (Human Interface Device) – o dispositivo de interfaz humana. En pocas palabras, cualquier sistema operativo al que conectemos el USB Rubber Ducky lo detectara y será bien aceptado automáticamente como si se hubiera conectado un teclado, ya sea en Windows, OS X, Linux o Android.
Al final, el teclado sigue siendo un interfaz fundamental y lo que hará USB Rubber Ducky es "teclear comandos"
en el sistema como si lo estuviera haciendo el usuario que se ha
conectado a la sesión. Usando un sencillo lenguaje de programación y un
editor de texto podríamos compilar un binario que automatice diversos “payloads” con lo cual podríamos realizar ataques en cuestión de segundos.
Debido a su estructura, los sistemas operativos ofrecen una confianza
inherente a las pulsaciones del teclado, por lo tanto los dispositivos
que abusan de la interfaz HID no pueden ser detectados por las contramedidas tradicionales de forma sencilla ya que iría contra la filosofía Plug&Play de los sistemas.
Esto hace que sea una herramienta muy útil en procesos de pentesting internos, ataques de ingeniería social del tipo "¿me puedes imprimir un documento?" o de auténticos atacantes de dentro de la organización.
¿Qué ataques se pueden realizar?
Al final, cuando un usuario pincha un USB Rubber Ducky en
su sesión de usuario es como si le hubiera dejado el teclado al atacante
para que este ejecutase lo que quisiera. Es decir, este ataque se
aprovecha de la confianza del usuario, que al final siempre es “el eslabón mas débil” o de la seguridad física de muchos equipos expuestos.
¿Cuántos de ustedes han llegado a alguna oficina gubernamental, banco y tienen a simple vista y acceso a los puertos USB
de los equipos? ¿A cuántos de ustedes les han prestado algún equipo
para revisar el correo, las redes sociales, etcétera? ¿Cuántos no tienen
en la oficina un equipo de un compañero con cuentas de diferentes
administradores o que tenga más permisos que el resto? ¿Cuántas veces no
has visto un puerto USB en un Kiosco de Internet o un Punto de Información? Si ninguno de esos puertos bloquea el interfaz HID, puedes hacer el ataque. Al final quizás agregar, subirlas a un servidor FTP en cuestión de segundos.
Seguro que os ha tocado llegar a una oficina a resolver tramites y la
persona que te atendió tuvo que salir un par de minutos, y esto es
tiempo suficiente para un atacante enchufar el USB Rubber Ducky y lanzar el payload - en lugar de hacer un David Hasselhoff para robar las passwords-. Por mencionar algunos ataques brevemente:
* Recolección de información del sistema operativo. * Robar información importante de los navegadores de Internet. * Robar y usar las cookies de las sesiones abiertas. * Hacer capturas de pantalla del escritorio y carpetas importantes del sistema. * Robar y utilizar las contraseñas de las conexiones WiFi de la víctima. * Subir la información a traves un servidor FTP.
Ataques dirigidos al sistema:
* Agregar usuarios con permisos administrativos al equipo de la víctima. * Borrar usuarios del sistema. * Hacer Pharming de DNS. * Infección del sistema descargando y ejecutando un binario de Internet. * Crackear passwords del administrador en el sistema. * Crear un Backdoor WiFi. * Bloquear programas en el sistema operativo de forma sigilosa.
¿Cómo podemos protegernos de estos ataques?
Desde que el grupo de hackers de Hack5 hizo pública la herramienta, algunos siguen pensando que desactivando el “autoplay” de los discos USB podrían detenerlo, pero esto no es posible hacerlo de esa manera ya que el ataque no sea hace vía un USB de almacenamiento sino como si alguien estuviera tecleando en un teclado USB.
Las formas que se puede utilizar para detectar que un USB es realmente un HID USB, se puede hacer un script en PowerShell que enumere la lista de dispositivos HID que alerte cuando uno nuevo se haya conectado y se bloquee. Aquí hay información sobre cómo acceder a la lista de los dispositivos desde PowerShell. A partir de ese punto, la forma en la que quieres estar protegido depende de ti.
En el trabajo de Adrian Crenshaw, titulado "Plug & Prey: Malicious USB devices" que fue presentado en la ShmooCON 2011 se explica en detalle la lista de posibles ataques que se pueden hacer por USB. Entre ellos, por supuesto, los teclados USB que abusan de la interfaz HID.
NTPassword
NTPassword es un software forense que se utiliza para recuperar contraseñas almacenadas en el registro de Windows. No es necesario que el sistema esté conectado a Internet, ya que el programa se ejecuta desde una unidad externa como CD o un USB. En el episodio 8 de la segunda temporada, Mobley de fsociety utiliza esta herramienta para crackear el ordenador de Susan Jacobs, la empleada de E Corp cuya casa han ocupado.
MagSpoof
¿Cómo utilizar los datos de la banda magnética de una tarjeta sin tener una tarjeta en donde copiarlos?Fácil: utiliza MagSpoof. Es un dispositivo que usa un electroimán simulando ser la barra magnética de una tarjeta. Claro está: previamente hay que haber guardado los números contenidos en la banda dela tarjeta que se quiere explotar. Lo utiliza Darlene en el episodio 6 de la segunda temporada para entrar a la habitación de hotel desde donde dará las indicaciones a Angela para conseguir hackear al FBI.
El ransomware
El ransomware ha sido la gran estrella de 2015. Según datos de Kaspersky, 754.684 ordenadores se infectaron el año pasado con troyanos chantajistas, un 171% más que en 2014. Ya lo contamos en eldiario.es: este tipo de malware funciona de forma similar a un troyano y tiene la capacidad de encriptar determinados archivos o datos de nuestro sistema, pidiendo después un rescate por liberarlos. Así empieza la segunda temporada de Mr. Robot.
Es el navegador que recomiendan los whistleblowers y todo aquel que quiera garantizarse una expectativa mínima de privacidad en la red. La red TOR funciona a través de nodos interconectados que enmascaran la dirección IP del sistema. Los datos viajan encriptados de unos nodos a otros y solo se descifran al llegar a su destino, haciendo que el rastro sea prácticamente imposible de seguir ya que antes, los paquetes de datos han cambiado de IP varias veces. Por ejemplo. Ray, que le pide ayuda a Elliot para aumentar la seguridad de sus sistemas, tiene una página web con pornografía infantil en la Deep web a la que solo se puede acceder vía TOR.
Bluescanner y Bluesniff
Elliot ataca a lo largo de la serie varios dispositivos Bluetooth utilizando Bluescanner y Bluesniff. La distro de Linux que también utiliza Elliot, Kali Linux, los lleva de serie. El primero sirve para rastrear dispositivos Bluetooth y extraer información de ellos sin necesidad de emparejarse con él. El segundo rastrea redes Bluetooth ocultas y ataca los dispositivos vulnerables para acceder a sus sistemas.
Wickr
Aunque pueda parecer lo contrario,Wickr no es nueva. Fue lanzada en 2012, pero experimenta cierto auge gracias a la serie de Sam Esmail. Como en Signal, Telegram o WhatsApp, las conversacionesvan cifradas de extremo a extremo. Además, elimina todos los metadatos de cada conversación y permite poner fecha de caducidad a los mensajes: desde 3 segundos a 6 días. En Wickr están tan seguros de que tienen el software total que ofrecen 10.000 dólares a quien descubra fallos en laapp. Es ese candado enMr. Robotque Elliot, Mobley o Darlene tocan y, después de leer el mensaje, se autodestruye.
DeepSound
Cada vez que hackea a alguien, Elliot almacena la información en un CD que previamente ha encriptado utilizando una herramienta llamada DeepSound. Este software permite esconder o cifrar los datos en un archivo de música con extensión .wav, .mp3, etc. Es por eso que Elliot no llama a los CDs por el nombre del hackeado: para él son discos de grupos de música famosos como Led Zeppelin, Blur, Van Halen...
Elliot usa Kibana para visualizar los esfuerzos del Ejército Oscuro para robar datos en "eps3.4_runtime-error.r00". Los usuarios elásticos en todo el mundo hacen una doble toma. Tratamos de escribir con calma una publicación de blog.
El Sr. Robot es un favorito de toda la compañía por razones que probablemente sean obvias. El programa es famoso por representar escenarios de ciberseguridad con una estrategia de detección realista, herramientas y respuestas. Entonces, cuando el equipo de Mr. Robot se acercó a nosotros, nos emocionó saber que querían presentar a Kibana en un próximo episodio. Nosotros, por supuesto, dijimos "¡sí!". No podíamos esperar para ver nuestro software en acción en el mundo de Elliot. Por cierto, notará que no es la última versión de Kibana, sino que Kibana 4 se ajusta a la línea de tiempo del programa.
En forma real, las mentes técnicas del Sr. Robot querían construir un auténtico tablero Kibana poblado de datos, creado con las herramientas reales. ¿Puedes ver por qué somos fanáticos?
Ryan Kazanciyan , Consultor Técnico de Mr. Robot, nos complace a todos en el contexto de ciberseguridad detrás de cada episodio. En su última publicación, se sumerge en cómo hizo un tablero de Kibana que representa la actividad maliciosa realizada por el Ejército Oscuro. Para empezar, Ryan construyó una máquina virtual ELK (hoy denominada Elastic Stack) compuesta por Elasticsearch, Logstash y Kibana. Luego lo llenó con datos de sistemas Windows y Linux. Para obtener más comentarios entre bastidores sobre cómo construyó cada sección del tablero, dirígete a su publicación de blog .
Las claves primarias pueden ser simples, formadas por un solo campo o compuestas, más de un campo.
Recordemos que una clave primaria identifica 1 solo registro en una
tabla. Para un valor del campo clave existe solamente 1 registro. Los
valores no se repiten ni pueden ser nulos.
Retomemos el ejemplo de la playa de estacionamiento que almacena cada
día los datos de los vehículos que ingresan en la tabla llamada
"vehiculos" con los siguientes campos:
- patente char(6) not null,
- tipo char (4),
- horallegada time not null,
- horasalida time,
Necesitamos definir una clave primaria para una tabla con los datos
descriptos arriba. No podemos usar la patente porque un mismo auto puede
ingresar más de una vez en el día a la playa; tampoco podemos usar
la
hora de entrada porque varios autos pueden ingresar a una misma hora.
Tampoco sirven los otros campos.
Como ningún campo, por si solo cumple con la condición para ser
clave, es decir, debe identificar un solo registro, el valor no puede
repetirse, debemos usar 2 campos.
Definimos una clave compuesta cuando ningún campo por si solo cumple con la condición para ser clave.
Usamos 2 campos como clave, la patente junto con la hora de llegada, así identificamos unívocamente cada registro.
Para establecer más de un campo como clave primaria usamos la siguiente sintaxis:
create table vehiculos(
patente char(6) not null,
tipo char(4),
horallegada time not null
horasalida time,
primary key(patente,horallegada)
);
Ahora desarrollando me encontré con el siguiente TABLA :
CREATE TABLE `ServiceBalanceQuota` (
`idServicePCRF` int(11) NOT NULL,
`idBalance` int(11) NOT NULL default '0',
`idQuota` int(11) NOT NULL,
`idProduct` int(11) NOT NULL,
PRIMARY KEY (`idServicePCRF`,`idQuota`,`idProduct`),
KEY `IDX_Produ` (`idProduct`),
KEY `IDX_Service` (`idServicePCRF`),
KEY `IDX_Balance` (`idBalance`),
KEY `IDX_Quota` (`idQuota`),
CONSTRAINT `FK_Balance` FOREIGN KEY (`idBalance`) REFERENCES `Balance` (`idBalance`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `Fk_Product` FOREIGN KEY (`idProduct`) REFERENCES `Product` (`idProduct`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_Quota` FOREIGN KEY (`idQuota`) REFERENCES `Quota` (`idQuota`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_Service` FOREIGN KEY (`idServicePCRF`) REFERENCES `ServicePCRF` (`idServicePCRF`) ON DELETE NO ACTION ON UPDATE NO ACTION
)
Podemos ver que tiene clave compuesta de ,
PRIMARY KEY (`idServicePCRF`,`idQuota`,`idProduct`)
Ahora si se quiere insertar los siguientes registros con esta estructura ?
Una Primary Key no puede tener valores repetidos ni valores nulos. Y eso, hay varias formas de conseguirlo.
Lo más conveniente siempre es que la columna que actúa como Primary
Key (o una de las columnas, si es compuesta) sea autoincremental porque
eso nos asegura que no tendrá valores repetidos ni nulos porque el mismo
Firebird se encarga de asignarle valores a esa columna.
Pero ¿una columna o varias columnas?
Si planeas usar replicación entonces lo más conveniente es que la
Primary Key esté compuesta por dos (o más) columnas. Si crees que nunca
usarás replicación entonces puedes usar una sola columna autoincremental
para ella.
La replicación es enviar los datos de una Base de Datos a otra Base
de Datos. Por ejemplo tienes sucursales en Buenos Aires, Montevideo y
Bogotá, cada una de ellas con su respectiva Base de Datos y quieres
consolidar las ventas de esas tres sucursales para tenerlas en una sola
Base de Datos. Entonces, debes poder distinguir en cual sucursal se
realizó cada venta y los identificadores no te servirán porque pueden
estar repetidos.
Conclusión:
Si no usas ni planeas usar replicación entonces la Primary Key puede estar compuesta por una sola columna autoincremental
Si usas o podrías llegar a usar replicación, entonces la Primary Key
debería estar compuesta por dos columnas: una que identifique a la
Sucursal y otra que sea autoincremental
diseñemos una BD en MYSQL: pongámosle value a una columna , GENIOS!!
ERROR 1064 (42000): You have an error in your SQL syntax ...
near '
El problema con eso es que hay palabras reservadas para MYSQL la mayoría deṕende de la versión que estemos utilizando.
Para evitar los errores se debe escapear las columnas con esos nombre mal definidos, para ello se debe usar `COLUMNA_NAME` o si la SQL_MODE esta en 'ANSI' se debe usar comillas dobles "COLUMNA_NAME" , depende de la session del SQL.
Table 10.2 Keywords and Reserved Words in MySQL
5.7