

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# ODBC
<a name="query-ODBC"></a>

El [controlador ODBC](https://github.com/awslabs/aws-iotsitewise-odbc-driver) de código abierto AWS IoT SiteWise proporciona una interfaz relacional SQL AWS IoT SiteWise para los desarrolladores y permite la conectividad desde herramientas de inteligencia empresarial (BI) como Power BI Desktop y Microsoft Excel. El controlador AWS IoT SiteWise ODBC está disponible actualmente en [Windows](https://github.com/awslabs/aws-iotsitewise-odbc-driver/releases) y admite el inicio de sesión único con Okta y Microsoft Azure Active Directory (AD).

Para obtener más información, consulte la documentación del controlador [AWS IoT SiteWise ODBC](https://github.com/awslabs/aws-iotsitewise-odbc-driver/blob/main/docs/markdown/index.md) en. GitHub

**Topics**
+ [Sintaxis de la cadena de conexión y opciones del controlador de ODBC](query-ODBC-connecting.md)
+ [Ejemplos de cadenas de conexión para el controlador AWS IoT SiteWise ODBC](query-ODBC-connecting-examples.md)
+ [Solución de problemas de conexión con el controlador de ODBC](query-ODBC-connecting-troubleshooting.md)

# Sintaxis de la cadena de conexión y opciones del controlador de ODBC
<a name="query-ODBC-connecting"></a>

La sintaxis para especificar las opciones de cadena de conexión para el controlador de ODBC es la siguiente:

```
Driver={AWS IoT SiteWise ODBC Driver};(option)=(value);
```

Las opciones disponibles son las siguientes:

**Opciones de conexión del controlador**
+ **`Driver`**   *(obligatorio)*: el controlador que se utiliza con ODBC.

  El valor predeterminado es AWS IoT SiteWise.
+ **`DSN`**   –   El nombre del origen de datos (DSN) que se utilizará para configurar la conexión.

  El valor predeterminado es `NONE`.
+ **`Auth`**   –   Modo de autenticación. Este debe ser uno de los siguientes:
  + `AWS_PROFILE`: utilice la cadena de credenciales predeterminada.
  + `IAM`— Utilice las credenciales AWS de IAM.
  + `AAD`: utilice el proveedor de identidades de Azure Active Directory (AD).
  + `OKTA`: utilice el proveedor de identidades Okta.

  El valor predeterminado es `AWS_PROFILE`.

**Opciones de configuración de puntos de conexión**
+ **`EndpointOverride`**— La anulación del punto final del AWS IoT SiteWise servicio. Se trata de una opción avanzada que anula la región. Por ejemplo:

  ```
  iotsitewise.us-east-1.amazonaws.com
  ```
+ **`Region`**— La región de firma del punto final del AWS IoT SiteWise servicio.

  El valor predeterminado es `us-east-1`.

**Opción de proveedores de credenciales**
+ **`ProfileName`**— El nombre del perfil en el archivo de AWS configuración.

  El valor predeterminado es `NONE`.

**AWS Opciones de autenticación de IAM**
+ **`UID`**o **`AccessKeyId`**: el identificador de la clave AWS de acceso del usuario. Si `UID` y `AccessKeyId` se proporcionan en la cadena de conexión, se utilizará el valor `UID` a menos que esté vacío.

  El valor predeterminado es `NONE`.
+ **`PWD`** o **`SecretKey`**   –   La clave de acceso secreta del usuario de AWS. Si `PWD` y `SecretKey` se proporcionan en la cadena de conexión, se utilizará el valor `PWD` a menos que esté vacío.

  El valor predeterminado es `NONE`.
+ **`SessionToken`**   –   El token de sesión temporal necesario para acceder a una base de datos con la autenticación multifactor (MFA) habilitada. No incluya un ` = ` final en la entrada.

  El valor predeterminado es `NONE`.

**Opciones de autenticación basadas en SAML para Okta**
+ **`IdPHost`**   –   El nombre de host del IdP especificado.

  El valor predeterminado es `NONE`.
+ **`UID`** o **`IdPUserName`**   –   El nombre de usuario de la cuenta de IdP especificada. Si `UID` y `IdPUserName` se proporcionan en la cadena de conexión, se utilizará el valor `UID` a menos que esté vacío.

  El valor predeterminado es `NONE`.
+ **`PWD`** o **`IdPPassword`**   –   La contraseña de la cuenta de IdP especificada. Si `PWD` y `IdPPassword` se proporcionan en la cadena de conexión, se utilizará el valor `PWD` a menos que esté vacío.

  El valor predeterminado es `NONE`.
+ **`OktaApplicationID`**— El identificador único proporcionado por Okta y asociado a la AWS IoT SiteWise aplicación. El identificador de la aplicación (AppId) se encuentra en el `entityID` campo proporcionado en los metadatos de la aplicación. Un ejemplo es:

  ```
  entityID="http://www.okta.com//(IdPAppID)
  ```

  El valor predeterminado es `NONE`.
+ **`RoleARN`**   –   El nombre de recurso de Amazon (ARN) del rol que la persona que llama va a tomar.

  El valor predeterminado es `NONE`.
+ **`IdPARN`**   –   El nombre de recurso de Amazon (ARN) del proveedor de SAML en IAM que describe el IdP.

  El valor predeterminado es `NONE`.

**Opciones de autenticación basadas en SAML para Azure Active Directory**
+ **`UID`** o **`IdPUserName`**   –   El nombre de usuario de la cuenta de IdP especificada.

  El valor predeterminado es `NONE`.
+ **`PWD`** o **`IdPPassword`**   –   La contraseña de la cuenta de IdP especificada.

  El valor predeterminado es `NONE`.
+ **`AADApplicationID`**   –   El identificador único de la aplicación registrada en Azure AD.

  El valor predeterminado es `NONE`.
+ **`AADClientSecret`**   –   El secreto del cliente asociado a la aplicación registrada en Azure AD que se utiliza para autorizar la obtención de los tokens.

  El valor predeterminado es `NONE`.
+ **`AADTenant`**   –   El ID de inquilino de Azure AD.

  El valor predeterminado es `NONE`.
+ **`RoleARN`**   –   El nombre de recurso de Amazon (ARN) del rol que la persona que llama va a tomar.

  El valor predeterminado es `NONE`.
+ **`IdPARN`**   –   El nombre de recurso de Amazon (ARN) del proveedor de SAML en IAM que describe el IdP.

  El valor predeterminado es `NONE`.

**AWS Opciones del SDK (avanzadas)**
+ **`RequestTimeout`**— El tiempo en milisegundos que el AWS SDK espera una solicitud de consulta antes de que se agote el tiempo de espera. Cualquier valor no positivo desactiva el tiempo de espera de la solicitud.

  El valor predeterminado es `3000`.
+ **`ConnectionTimeout`**— El tiempo en milisegundos que el AWS SDK espera a que los datos se transfieran a través de una conexión abierta antes de que se agote el tiempo de espera. Un valor de 0 deshabilita el tiempo de espera de conexión. Este valor no debe ser negativo.

  El valor predeterminado es `1000`.
+ **`MaxRetryCountClient`**   –   El número máximo de intentos de reintento en el caso de errores reintentables con códigos de error de 5xx en el SDK. El valor no debe ser negativo.

  El valor predeterminado es `0`.
+ **`MaxConnections`**— El número máximo de conexiones HTTP abiertas simultáneamente con el AWS IoT SiteWise servicio. El valor debe ser un número positivo.

  El valor predeterminado es `25`.

**Opciones de registro del controlador de ODBC**
+ **`LogLevel`**   –   El nivel de registro para el registro de los controladores. Debe ser uno de los siguientes:
  + **0**   (APAGADO).
  + **1**   (ERROR).
  + **2**   (ADVERTENCIA).
  + **3**   (INFORMACIÓN).
  + **4**   (DEPURACIÓN).

  El valor predeterminado es `1` (ERROR).

  **Advertencia:** El controlador puede registrar información personal al utilizar el modo de registro de DEPURACIÓN.
+ **`LogOutput`**   –   Carpeta en la que almacenar el archivo de registro.

  El valor predeterminado es:
  + **Windows:** `%USERPROFILE%` o si no está disponible, `%HOMEDRIVE%%HOMEPATH%`.
  + **macOS y Linux:** `$HOME` o si no está disponible, el campo `pw_dir` del valor devuelto `getpwuid(getuid())` por la función.

**Opciones de registro de SDK**

El nivel de registro del AWS SDK es independiente del nivel de registro del controlador AWS IoT SiteWise ODBC. Configurar uno no afecta al otro.

El nivel de registro del SDK se establece mediante la variable de entorno `SW_AWS_LOG_LEVEL`. Los valores válidos son:
+ `OFF`
+ `ERROR`
+ `WARN`
+ `INFO`
+ `DEBUG`
+ `TRACE`
+ `FATAL`

Si `SW_AWS_LOG_LEVEL` no está establecido, el nivel de registro del SDK se establece en el valor predeterminado, que es `WARN`.

## Conexión a través de un proxy
<a name="query-ODBC-connecting-proxy"></a>

El controlador ODBC admite la conexión a AWS IoT SiteWise través de un proxy. Para utilizar esta característica, configure las siguientes variables de entorno en función de la configuración del proxy:
+ **`SW_PROXY_HOST`**   –   el host del proxy.
+ **`SW_PROXY_PORT`**   –   Número de puerto del proxy.
+ **`SW_PROXY_SCHEME`**   –   El esquema de proxy, ya sea `http` o `https`.
+ **`SW_PROXY_USER`**   –   Nombre de usuario que se utilizará para la autenticación del proxy.
+ **`SW_PROXY_PASSWORD`**   –   Contraseña de usuario que se utilizará para la autenticación del proxy.
+ **`SW_PROXY_SSL_CERT_PATH`**   –   El archivo de certificado SSL que se utilizará para conectarse a un proxy HTTPS.
+ **`SW_PROXY_SSL_CERT_TYPE`**   –   El tipo de certificado SSL del cliente proxy.
+ **`SW_PROXY_SSL_KEY_PATH`**   –   El archivo de clave privada que se utilizará para conectarse a un proxy HTTPS.
+ **`SW_PROXY_SSL_KEY_TYPE`**   –   El tipo de archivo de clave privada que se utilizará para conectarse a un proxy HTTPS.
+ **`SW_PROXY_SSL_KEY_PASSWORD`**   –   La frase de contraseña para el archivo de clave privada que se utilizará para conectarse a un proxy HTTPS.

# Ejemplos de cadenas de conexión para el controlador AWS IoT SiteWise ODBC
<a name="query-ODBC-connecting-examples"></a>

## Ejemplo de conexión al controlador de ODBC con credenciales de IAM
<a name="query-ODBC-connecting-examples-iam"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=IAM;AccessKeyId=(your access key ID);SecretKey=(your secret key);SessionToken=(your session token);Region=us-east-1;
```

## Ejemplo de conexión al controlador de ODBC con un perfil
<a name="query-ODBC-connecting-examples-profile"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};ProfileName=(the profile name);region=us-east-1;
```

El controlador intentará conectarse con las credenciales proporcionadas en `~/.aws/credentials`, o si se especifica un archivo en la variable de entorno `AWS_SHARED_CREDENTIALS_FILE`, con las credenciales de ese archivo.

## Ejemplo de conexión al controlador de ODBC con Okta
<a name="query-ODBC-connecting-examples-okta"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=OKTA;region=us-east-1;idPHost=(your host at Okta);idPUsername=(your user name);idPPassword=(your password);OktaApplicationID=(your Okta AppId);roleARN=(your role ARN);idPARN=(your Idp ARN);
```

## Ejemplo de conexión al controlador ODBC con Azure Active Directory (AAD)
<a name="query-ODBC-connecting-examples-aad"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=AAD;region=us-east-1;idPUsername=(your user name);idPPassword=(your password);aadApplicationID=(your AAD AppId);aadClientSecret=(your AAD client secret);aadTenant=(your AAD tenant);roleARN=(your role ARN);idPARN=(your idP ARN);
```

## Ejemplo de conexión al controlador ODBC con un punto de conexión específico y un nivel de registro de 2 (ADVERTENCIA)
<a name="query-ODBC-connecting-examples-okta"></a>

```
Driver={AWS IoT SiteWise ODBC Driver};Auth=IAM;AccessKeyId=(your access key ID);SecretKey=(your secret key);EndpointOverride=iotsitewise.us-east-1.amazonaws.com;Region=us-east-1;LogLevel=2;
```

# Solución de problemas de conexión con el controlador de ODBC
<a name="query-ODBC-connecting-troubleshooting"></a>

**nota**  
Si el nombre de usuario y la contraseña ya están especificados en el DSN, no los vuelva a especificar cuando el administrador de controladores ODBC los solicite.

Se produce un código de error de `01S02` con un mensaje, `Re-writing (connection string option) (have you specified it several times?)` ocurre cuando se pasa una opción de cadena de conexión más de una vez en la cadena de conexión. Si se especifica una opción más de una vez, se produce un error. Al realizar una conexión con un DSN y una cadena de conexión, si una opción de conexión ya está especificada en el DSN, no la vuelva a especificar en la cadena de conexión.