

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione di Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.ORDSConf"></a>

L’argomento seguente illustra le opzioni di configurazione per ORDS 21 e 22:

**Topics**
+ [Installazione e configurazione di ORDS 21 e versioni precedenti](#Appendix.Oracle.Options.APEX.ORDS)
+ [Installazione e configurazione di ORDS 22 e versioni successive](#Appendix.Oracle.Options.APEX.ORDS22)

## Installazione e configurazione di ORDS 21 e versioni precedenti
<a name="Appendix.Oracle.Options.APEX.ORDS"></a>

È ora possibile installare e configurare Oracle Rest Data Services (ORDS) per l'utilizzo con Oracle APEX. Per Oracle APEX versione 5.0 e versioni successive, utilizza ORDS versioni da 19.1 a 21. Per informazioni su come installare ORDS 22 e versioni successive, consulta [Installazione e configurazione di ORDS 22 e versioni successive](#Appendix.Oracle.Options.APEX.ORDS22).

Installa il listener in un host separato, come un'istanza Amazon EC2, un server locale nella tua azienda oppure il tuo computer desktop. Per gli esempi in questa sezione, supponiamo che il nome dell'host sia `myapexhost.example.com` e che l'host esegua Linux.

**Per installare e configurare ORDS 21 e versioni precedenti per l’utilizzo con Oracle APEX**

1. Vai ai [Oracle REST data services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html) ed esamina il file Readme. Verifica che sia installata la versione richiesta di Java.

1. Crea una nuova directory per l’installazione di ORDS.

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. Scarica il file `ords.version.number.zip` da [Oracle REST Data Services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html).

1. Decomprimere il file nella directory `/home/apexuser/ORDS`.

1. Se stai installando ORDS in un database multilocazione, aggiunge la riga seguente al file `/home/apexuser/ORDS/params/ords_params.properties`:

   ```
   pdb.disable.lockdown=false
   ```

1. Concedere all'utente master i privilegi necessari per installare ORDS.

   Una volta installate le opzioni per Oracle APEX, concedi all’utente master i privilegi necessari per installare lo schema ORDS. Questa operazione può essere eseguita collegandosi al database ed eseguendo questi comandi: Sostituisci `MASTER_USER` con il nome in maiuscolo dell'utente master.
**Importante**  
Quando si immette il nome utente, utilizzare maiuscole a meno che l'utente non sia stato creato con un identificatore con distinzione tra maiuscole e minuscole. Ad esempio, se esegui `CREATE USER myuser` o `CREATE USER MYUSER`, il dizionario dati memorizza `MYUSER`. Tuttavia, se si utilizzano virgolette doppie in `CREATE USER "MyUser"`, il dizionario dati memorizza `MyUser`. Per ulteriori informazioni, consulta [Concedere privilegi SELECT o EXECUTE agli oggetti SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md).

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   ```
**Nota**  
Questi comandi si applicano a ORDS versione 19.1 e successive.

1. Installare lo schema ORDS utilizzando il file scaricato ords.war.

   ```
   java -jar ords.war install advanced
   ```

   Il programma richiede le seguenti informazioni. I valori predefiniti sono riportati tra parentesi. Per altre informazioni, consulta l'articolo relativo a [Introduzione a Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730) nella documentazione Oracle.
   + Destinazione di archiviazione dei dati di configurazione

     Specificare (sì */home/apexuser/ORDS*. Questa è la posizione dei file di configurazione di ORDS.
   + Specificare il tipo di connessione al database da utilizzare. Immettere il numero per [1] Basic [2] TNS [3] URL personalizzato [1]:

     Scegliere il tipo di connessione desiderato.
   + Immettete il nome del server del database [localhost]: *DB\$1instance\$1endpoint*

     Scegli il valore predefinito o digita il valore corretto.
   + Immettete la porta del listener del database [1521]: *DB\$1instance\$1port*

     Scegli il valore predefinito o digita il valore corretto.
   + Immettere 1 per specificare il nome del servizio di database o 2 per specificare il SID del database [1]:

     Scegliere `2` per specificare il SID del database. 
   + SID del database [xe]

     Scegli il valore predefinito o digita il valore corretto.
   + Immettere 1 se si desidera utilizzare lo schema verify/install Oracle REST Data Services o 2 per saltare questo passaggio [1]:

     Scegliere `1`. Questo passaggio crea l'utente proxy di Oracle REST Data Services denominato ORDS\$1PUBLIC\$1USER.
   + Immettere la password del database per ORDS\$1PUBLIC\$1USER:

     Immettere la password, quindi confermarla.
   + Richiede l’accesso con i privilegi di amministratore per verificare lo schema Oracle REST Data Services.

     Immettere il nome utente dell'amministratore: *master\$1user*

     Inserisci la password del database per*master\$1user*: *master\$1user\$1password*

     Conferma la password: *master\$1user\$1password*
**Nota**  
Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.
   + Inserire lo spazio tabella predefinito per ORDS\$1METADATA [SYSAUX].

     Inserire lo spazio tabella temporaneo per ORDS\$1METADATA [TEMP].

     Inserire lo spazio tabella predefinito per ORDS\$1PUBLIC\$1USER [USERS].

     Inserire lo spazio tabella temporaneo per ORDS\$1PUBLIC\$1USER [USERS].
   + Inserisci 1 se desideri utilizzare PL/SQL Gateway o 2 per saltare questo passaggio. Se si sta utilizzando Oracle Application Express o si sta migrando da mod\$1plsql, inserire 1 [1].

     Scegliere il valore predefinito.
   + Immettete il nome utente del database PL/SQL Gateway [APEX\$1PUBLIC\$1USER]

     Scegliere il valore predefinito.
   + Inserire la password del database per APEX\$1PUBLIC\$1USER

     Immettere la password, quindi confermarla.
   + Immettete 1 per specificare le password per gli utenti del database di Application Express RESTful Services (APEX\$1LISTENER, APEX\$1REST\$1PUBLIC\$1USER) o 2 per saltare questo passaggio [1]:

     Scegliere `2` per APEX 4.1.1.V1 oppure scegliere `1` per tutte le altre versioni di APEX.
   + [Non necessario per APEX 4.1.1.v1] Password di database per APEX\$1LISTENER

     Immettere la password (se necessario), quindi confermarla.
   + [Non necessario per APEX 4.1.1.v1] Password di database per APEX\$1REST\$1PUBLIC\$1USER

     Immettere la password (se necessario), quindi confermarla.
   + Immettere un numero per selezionare una funzione da abilitare:

     Immettere `1` per abilitare tutte le funzioni: SQL Developer Web, REST Enabled SQL e Database API.
   + Immettere 1 se si desidera avviare in modalità standalone o 2 per uscire [1]:

     Specificare (sì `1`.
   + Immettere l'ubicazione delle risorse statiche APEX:

     Se i file di installazione APEX sono stati decompressi in `/home/apexuser`, immettere `/home/apexuser/apex/images`. Altrimenti, inserisci, dov'è la directory in cui hai decompresso il file. `unzip_path/apex/images` *unzip\$1path*
   + Immettere 1 se si utilizza HTTP o 2 se si utilizza HTTPS [1]:

     Se si immette `1`, specificare la porta HTTP. Se si immette `2`, specificare la porta HTTPS e il nome host SSL. L'opzione HTTPS richiede di specificare come si fornirà il certificato:
     + Immettere `1` per utilizzare il certificato autofirmato.
     + Immettere `2` per fornire il proprio certificato. Se si immette `2`, specificare il percorso per il certificato SSL e il percorso per la chiave privata del certificato SSL.

1. Impostare una password per l'utente `admin` APEX. Per farlo, utilizzare SQL\$1Plus per connettersi alla propria istanza database come utente master, quindi utilizzare i seguenti comandi:

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Sostituire `master` con il proprio nome utente master. Quando lo script `apxchpwd.sql` lo richiede, inserire una nuova password `admin`. 

1. Avviare il listener ORDS. Eseguire il seguente codice.

   ```
   java -jar ords.war
   ```

   Al primo avvio dell'ORDS viene richiesto di fornire la posizione delle risorse statiche APEX. Questa cartella di immagini è posizionata nella directory `/apex/images` all’interno della directory di installazione per APEX. 

1. Torna alla finestra di amministrazione Oracle APEX nel browser e scegli l’opzione **Administration**. Scegliere quindi **Application Express Internal Administration (Amministrazione interna Application Express)**. Quando vengono richieste le credenziali, inserire le seguenti informazioni: 
   + **User name (Nome utente** – `admin` 
   + **Password** – La password impostata usando lo script `apxchpwd.sql` 

   Scegliere **Login (Accedi)**, quindi impostare una nuova password per l'utente `admin`. 

Il listener è ora pronto per essere utilizzato.

## Installazione e configurazione di ORDS 22 e versioni successive
<a name="Appendix.Oracle.Options.APEX.ORDS22"></a>

È ora possibile installare e configurare Oracle Rest Data Services (ORDS) per l'utilizzo con Oracle APEX. Per gli esempi in questa sezione, supponiamo che il nome dell’host separato sia `myapexhost.example.com` e che l’host esegua Linux. Le istruzioni per ORDS 22 differiscono da quelle per le versioni precedenti.

**Per installare e configurare ORDS 22 e versioni successive per l’uso con Oracle APEX**

1. Vai ai [Oracle REST data services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html) ed esamina il file Readme per la versione di ORDS che intendi scaricare. Verifica che sia installata la versione richiesta di Java.

1. Crea una nuova directory per l’installazione di ORDS.

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. Scarica il file `ords.version.number.zip` o `ords-latest.zip` da [Oracle REST data services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html).

1. Decomprimere il file nella directory `/home/apexuser/ORDS`.

1. Concedere all'utente master i privilegi necessari per installare ORDS.

   Una volta installata l’opzione `APEX`, concedi all’utente master i privilegi necessari per installare lo schema ORDS. Questa operazione può essere eseguita collegandosi al database ed eseguendo questi comandi: Sostituisci `MASTER_USER` con il nome in maiuscolo dell'utente master.
**Importante**  
Quando si immette il nome utente, utilizzare maiuscole a meno che l'utente non sia stato creato con un identificatore con distinzione tra maiuscole e minuscole. Ad esempio, se esegui `CREATE USER myuser` o `CREATE USER MYUSER`, il dizionario dati memorizza `MYUSER`. Tuttavia, se si utilizzano virgolette doppie in `CREATE USER "MyUser"`, il dizionario dati memorizza `MyUser`. Per ulteriori informazioni, consulta [Concedere privilegi SELECT o EXECUTE agli oggetti SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md).

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER', 'SELECT', true);
   ```
**Nota**  
I comandi precedenti si applicano a ORDS 22 e versioni successive.

1. Installa lo schema ORDS utilizzando lo script `ords` scaricato. Specifica le directory in cui inserire i file di configurazione e i file di log. Oracle Corporation consiglia di non inserire queste directory nella directory che contiene il software del prodotto ORDS.

   ```
   mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs
   
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs
   ```

   Per le istanze database che eseguono l’architettura del database dei container (CDB), utilizza ORDS 23.3 o versioni successive e passa l’argomento `--pdb-skip-disable-lockdown` durante l’installazione di ORDS.

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown
   ```

   Il programma richiede le seguenti informazioni. I valori predefiniti sono riportati tra parentesi. Per altre informazioni, consulta l'articolo relativo a [Introduzione a Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730) nella documentazione Oracle.
   + `Choose the type of installation:`

     Sceglie **2** per installare gli schemi ORDS nel database e creare un pool di connessioni al database nei file di configurazione ORDS locali.
   + `Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:`

     Scegliere il tipo di connessione desiderato. Questo esempio presuppone che tu scelga **1**.
   + `Enter the name of the database server [localhost]:` ***DB\$1instance\$1endpoint***

     Scegli il valore predefinito o digita il valore corretto.
   + `Enter the database listener port [1521]:` ***DB\$1instance\$1port***

     Scegli il valore predefinito **1521** o digita il valore corretto.
   + `Enter the database service name [orcl]:`

     Immetti il nome del database utilizzato dall’istanza database RDS per Oracle.
   + `Provide database user name with administrator privileges`

      Inserisci il nome utente master per l’istanza database RDS per Oracle.
   + `Enter the database password for [username]:`

     Inserisci la password dell’utente master per l’istanza database RDS per Oracle.
   + `Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]:`
   + `Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP].`
   + `Enter a number to select additional feature(s) to enable [1]:`
   + `Enter a number to configure and start ORDS in standalone mode [1]: `

      Scegli **2** per saltare immediatamente l’avvio di ORDS in modalità standalone.
   + `Enter a number to select the protocol [1] HTTP`
   + `Enter the HTTP port [8080]:`
   + `Enter the APEX static resources location:`

     Immetti il percorso ai file di installazione di Oracle APEX (`/home/apexuser/apex/images`).

1. Imposta una password per l’utente `admin` di Oracle APEX. Per farlo, utilizzare SQL\$1Plus per connettersi alla propria istanza database come utente master, quindi utilizzare i seguenti comandi:

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Sostituire `master` con il proprio nome utente master. Quando lo script `apxchpwd.sql` lo richiede, inserire una nuova password `admin`. 

1. Esegui ORDS in modalità standalone utilizzando lo script `ords` con il comando `serve`. Per le implementazioni di produzione, prendi in considerazione l'utilizzo di server applicativi Java EE supportati come Apache Tomcat o Oracle Server. WebLogic Per altre informazioni, consulta l’articolo [Deploying and Monitoring Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/23.1/ordig/deploying-and-monitoring-oracle-rest-data-services.html#GUID-6791F5DF-AC67-4885-BFFA-B80964C17EC9) nella documentazione Oracle.

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config serve \
     --port 8193 \
     --apex-images /home/apexuser/apex/images
   ```

   Se ORDS è in esecuzione, ma non è possibile accedere all’installazione di Oracle APEX, è possibile che venga visualizzato il seguente errore, in particolare sulle istanze non CDB. 

   ```
   The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.
   ```

   Per correggere questo errore, modifica la funzione di convalida della richiesta utilizzata da ORDS eseguendo lo script `ords` con il comando `config`. Per impostazione predefinita, ORDS utilizza la procedura `ords_util.authorize_plsql_gateway`, che è supportata solo sulle istanze CDB. Per le istanze non CDB, puoi modificare questa procedura nel pacchetto `wwv_flow_epg_include_modules.authorize`. Consulta la documentazione di Oracle Database e Oracle Support per le best practice sulla configurazione della funzione di convalida delle richieste appropriata per il tuo caso d’uso.

1. Torna alla finestra di amministrazione Oracle APEX nel browser e scegli l’opzione **Administration**. Scegliere quindi **Application Express Internal Administration (Amministrazione interna Application Express)**. Quando vengono richieste le credenziali, inserire le seguenti informazioni: 
   + **User name (Nome utente** – `admin` 
   + **Password** – La password impostata usando lo script `apxchpwd.sql` 

   Scegliere **Login (Accedi)**, quindi impostare una nuova password per l'utente `admin`. 

Il listener è ora pronto per essere utilizzato.