

# Máquina virtual Oracle Java
<a name="oracle-options-java"></a>

Amazon RDS admite Oracle Java Virtual Machine (JVM) mediante el uso de la opción `JVM`. Mediante Oracle Java se suministran un esquema SQL y funciones que facilitan el uso de las características de Oracle Java en una base de datos Oracle. Para obtener más información, consulte [ Introduction to Java in Oracle Database](https://docs.oracle.com/database/121/JJDEV/chone.htm) en la documentación de Oracle. Puede utilizar Oracle JVM con todas las versiones de Oracle Database 21c (21.0.0) y Oracle Database 19c (19.0.0).

## Consideraciones para Oracle JVM
<a name="oracle-options-java.considerations"></a>

La implementación de Java en Amazon RDS dispone de un conjunto limitado de permisos. Se concede al usuario maestro el rol `RDS_JAVA_ADMIN`, que proporciona un subconjunto de privilegios gracias al rol `JAVA_ADMIN`. Para enumerar los privilegios concedidos al rol `RDS_JAVA_ADMIN`, ejecute la siguiente consulta en su instancia de base de datos:

```
SELECT * FROM dba_java_policy 
   WHERE grantee IN ('RDS_JAVA_ADMIN', 'PUBLIC') 
   AND enabled = 'ENABLED' 
   ORDER BY type_name, name, grantee;
```

## Requisitos previos para Oracle JVM
<a name="oracle-options-java.prerequisites"></a>

A continuación se indican los requisitos previos para utilizar Oracle Java:
+ Su instancia de base de datos debe ser de una clase suficientemente grande. Oracle Java no es compatible con la clase de instancia de base de datos db.t3.small. Para obtener más información, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md).
+ Su instancia de base de datos debe tener **Auto Minor Version Upgrade** habilitada. Esta opción permite que la instancia de base de datos reciba automáticamente las actualizaciones de la versión secundaria del motor de base de datos cuando estén disponibles. Amazon RDS utiliza esta opción para actualizar su instancia de base de datos a la PSU (Patch Set Update) de Oracle más reciente o actualización de la versión (RU). Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Prácticas recomendadas para Oracle JVM
<a name="oracle-options-java.best-practices"></a>

A continuación, se indican las prácticas recomendadas para utilizar Oracle Java: 
+ Para que la seguridad sea máxima, use la opción `JVM` con Capa de conexión segura (SSL). Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 
+ Configure su instancia de base de datos para restringir el acceso a la red. Para obtener más información, consulte [Escenarios de acceso a una instancia de base de datos en una VPC](USER_VPC.Scenarios.md) y [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 
+ Actualice la configuración de los puntos de enlace HTTPS para admitir TLSv1.2 si cumple las siguientes condiciones:
  + Utilice la máquina virtual de Oracle Java (JVM) para conectar un punto de enlace HTTPS a través de los protocolos TLSv1 o TLSv1.1.
  + El punto de enlace no admite el protocolo TLSv1.2.
  + No ha aplicado la actualización de la versión de abril de 2021 a Oracle Database.

  Al actualizar la configuración del punto de enlace, se asegura de que la conectividad de la JVM con el punto de enlace HTTPS siga en funcionamiento. Para obtener más información sobre los cambios de TLS en Oracle JRE y JDK, consulte [Plan de desarrollo criptográfico de Oracle JRE y JDK](https://java.com/en/jre-jdk-cryptoroadmap.html).

## Adición de la opción Oracle JVM
<a name="oracle-options-java.add"></a>

A continuación se muestra el proceso general para añadir la opción `JVM` a una instancia de base de datos: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Se produce una breve interrupción mientras se añade la opción `JVM`. Después de añadir la opción , no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, Oracle Java estará disponible. 

**nota**  
Durante esta interrupción, las funciones de verificación de contraseña se deshabilitan brevemente. También puede esperar ver eventos relacionados con las funciones de verificación de contraseña durante la interrupción. Las funciones de verificación de contraseña se vuelven a habilitar antes de que la instancia de base de datos de Oracle esté disponible.

**Para añadir la opción JVM a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 
   + Para **Engine (Motor)**, elija el motor de base de datos utilizado por la instancia de base de datos (**oracle-ee**, **oracle-se**, **oracle-se1** o bien **oracle-se2**). 
   + En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **JVM** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. Concesión de permisos necesarios a los usuarios.

   El usuario maestro de Amazon RDS tiene los permisos para usar la opción `JVM` de forma predeterminada. Si otros usuarios necesitan estos permisos, conéctese a la instancia de base de datos como usuario maestro en un cliente SQL y conceda los permisos a los usuarios.

   En el siguiente ejemplo se conceden permisos para usar la opción `JVM` al usuario `test_proc`.

   ```
   create user test_proc identified by password;
   CALL dbms_java.grant_permission('TEST_PROC', 'oracle.aurora.security.JServerPermission', 'LoadClassInPackage.*', '');
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

   Una vez que se conceden los permisos al usuario, la siguiente consulta debería devolver el resultado.

   ```
   select * from dba_java_policy where grantee='TEST_PROC';
   ```
**nota**  
El nombre de usuario de Oracle distingue entre mayúsculas y minúsculas; normalmente todos los caracteres están en mayúsculas.

## Eliminación de la opción Oracle JVM
<a name="oracle-options-java.remove"></a>

Puede quitar la opción `JVM` de una instancia de base de datos. Se produce una breve interrupción mientras se quita la opción. Después de quitar la opción `JVM`, no es necesario reiniciar la instancia de base de datos. 

**aviso**  
 La eliminación de la opción `JVM` puede dar lugar a la pérdida de datos si la instancia de base de datos usa los tipos de datos habilitados como parte de la opción. Realice copias de seguridad de los datos antes de continuar. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md). 

Para quitar la opción `JVM` de una instancia de base de datos, realice una de las siguientes operaciones: 
+ Quite la opción `JVM` del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción `JVM`. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 