

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

용 오픈 소스 [ODBC 드라이버](https://github.com/awslabs/aws-iotsitewise-odbc-driver)는 개발자에게에 AWS IoT SiteWise 대한 SQL 관계형 인터페이스를 AWS IoT SiteWise 제공하며 Power BI 데스크톱 및 Microsoft Excel과 같은 비즈니스 인텔리전스(BI) 도구에서 연결할 수 있습니다. AWS IoT SiteWise ODBC 드라이버는 현재 [Windows](https://github.com/awslabs/aws-iotsitewise-odbc-driver/releases)에서 사용할 수 있으며 Okta 및 Microsoft Azure Active Directory(AD)를 사용하는 SSO를 지원합니다.

자세한 내용은 [AWS IoT SiteWise GitHub의 ODBC 드라이버 설명서를](https://github.com/awslabs/aws-iotsitewise-odbc-driver/blob/main/docs/markdown/index.md) 참조하세요.

**Topics**
+ [ODBC 드라이버에 대한 연결 문자열 구문 및 옵션](query-ODBC-connecting.md)
+ [AWS IoT SiteWise ODBC 드라이버의 연결 문자열 예제](query-ODBC-connecting-examples.md)
+ [ODBC 드라이버와의 연결 문제 해결](query-ODBC-connecting-troubleshooting.md)

# ODBC 드라이버에 대한 연결 문자열 구문 및 옵션
<a name="query-ODBC-connecting"></a>

ODBC 드라이버의 연결 문자열 옵션을 지정하는 구문은 다음과 같습니다.

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

사용 가능한 옵션은 다음과 같습니다.

**드라이버 연결 옵션**
+ **`Driver`***(필수)* - ODBC와 함께 사용 중인 드라이버입니다.

  기본값은 AWS IoT SiteWise입니다.
+ **`DSN`** - 연결을 구성하는 데 사용할 데이터 소스 이름(DSN)입니다.

  기본값은 `NONE`입니다.
+ **`Auth`** - 인증 모드입니다. 이 값은 다음 중 하나여야 합니다.
  + `AWS_PROFILE` - 기본 자격 증명 체인을 사용합니다.
  + `IAM` - AWS IAM 자격 증명을 사용합니다.
  + `AAD` - Azure Active Directory(AD) ID 제공업체를 사용합니다.
  + `OKTA` - Okta ID 제공업체를 사용합니다.

  기본값은 `AWS_PROFILE`입니다.

**엔드포인트 구성 옵션**
+ **`EndpointOverride`**   - AWS IoT SiteWise 서비스에 대한   엔드포인트 재정의입니다. 이는 리전을 재정의하는 고급 옵션입니다. 예제:

  ```
  iotsitewise.us-east-1.amazonaws.com
  ```
+ **`Region`**   - AWS IoT SiteWise 서비스 엔드포인트의   서명 리전입니다.

  기본값은 `us-east-1`입니다.

**자격 증명 제공업체 옵션**
+ **`ProfileName`**   - AWS 구성 파일의   프로필 이름입니다.

  기본값은 `NONE`입니다.

**AWS IAM 인증 옵션**
+ **`UID`** 또는**`AccessKeyId`** -   AWS 사용자 액세스 키 ID입니다. 연결 문자열에 `UID`와 `AccessKeyId`가 모두 제공된 경우 값이 비어 있지 않으면 `UID` 값이 사용됩니다.

  기본값은 `NONE`입니다.
+ **`PWD`** 또는 **`SecretKey`** - <shared id="AWS"/> 사용자 시크릿 액세스 키입니다. 연결 문자열에 `PWD`와 `SecretKey`가 모두 제공된 경우 값이 비어 있지 않으면 `PWD` 값이 사용됩니다.

  기본값은 `NONE`입니다.
+ **`SessionToken`** - 다중 인증(MFA)이 활성화된 데이터베이스에 액세스하는 데 필요한 임시 세션 토큰입니다. 입력에 후행 ` = `를 포함하지 마세요.

  기본값은 `NONE`입니다.

**Okta에 대한 SAML 기반 인증 옵션**
+ **`IdPHost`** - 지정된 IdP의 호스트 이름입니다.

  기본값은 `NONE`입니다.
+ **`UID`** 또는 **`IdPUserName`**- 지정된 IdP 계정의 사용자 이름입니다. 연결 문자열에 `UID`와 `IdPUserName`가 모두 제공된 경우 값이 비어 있지 않으면 `UID` 값이 사용됩니다.

  기본값은 `NONE`입니다.
+ **`PWD`** 또는 **`IdPPassword`** - 지정된 IdP 계정의 암호입니다. 연결 문자열에 `PWD`와 `IdPPassword`가 모두 제공된 경우 값이 비어 있지 않으면 `PWD` 값이 사용됩니다.

  기본값은 `NONE`입니다.
+ **`OktaApplicationID`**   - AWS IoT SiteWise 애플리케이션과 연결된   고유한 Okta 제공 ID입니다. 애플리케이션 메타데이터에 제공된 `entityID` 필드에서 애플리케이션 ID(AppId)를 찾을 수 있습니다. 예제:

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

  기본값은 `NONE`입니다.
+ **`RoleARN`** - 발신자가 수임하는 역할의 Amazon 리소스 이름(ARN)입니다.

  기본값은 `NONE`입니다.
+ **`IdPARN`** - IAM의 SAML 제공업체의 Amazon 리소스 이름(ARN)으로, IdP를 설명합니다.

  기본값은 `NONE`입니다.

**Azure Active Directory에 대한 SAML 기반 인증 옵션**
+ **`UID`** 또는 **`IdPUserName`**- 지정된 IdP 계정의 사용자 이름입니다.

  기본값은 `NONE`입니다.
+ **`PWD`** 또는 **`IdPPassword`**- 지정된 IdP 계정의 암호입니다.

  기본값은 `NONE`입니다.
+ **`AADApplicationID`** - Azure AD에 등록된 애플리케이션의 고유 ID입니다.

  기본값은 `NONE`입니다.
+ **`AADClientSecret`** - Azure AD에 등록된 애플리케이션과 연결된 클라이언트 시크릿으로, 토큰 가져오기를 승인하는 데 사용됩니다.

  기본값은 `NONE`입니다.
+ **`AADTenant`** - Azure AD 테넌트 ID입니다.

  기본값은 `NONE`입니다.
+ **`RoleARN`** - 발신자가 수임하는 역할의 Amazon 리소스 이름(ARN)입니다.

  기본값은 `NONE`입니다.
+ **`IdPARN`** - IAM의 SAML 제공업체의 Amazon 리소스 이름(ARN)으로, IdP를 설명합니다.

  기본값은 `NONE`입니다.

**AWS SDK(고급) 옵션**
+ **`RequestTimeout`**   - 시간이 초과되기 전에 AWS SDK가 쿼리 요청을 기다리는 밀리초 단위의   시간입니다. 양수가 아닌 값은 요청 제한 시간을 비활성화합니다.

  기본값은 `3000`입니다.
+ **`ConnectionTimeout`**   - AWS 제한 시간이 초과되기 전에 SDK가 열린 연결을 통해 데이터가 전송될 때까지 대기하는 밀리초 단위   시간입니다. 0 값은 연결 제한 시간을 비활성화합니다. 이 값은 음수가 아니어야 합니다.

  기본값은 `1000`입니다.
+ **`MaxRetryCountClient`** - SDK에서 오류 코드 5xx의 재시도 가능한 오류에 대한 최대 재시도 횟수입니다. 값은 음수가 아니어야 합니다.

  기본값은 `0`입니다.
+ **`MaxConnections`**   - AWS IoT SiteWise 서비스에 대해 동시에 열린 HTTP 연결이 허용되는   최대 수입니다. 값은 양수여야 합니다.

  기본값은 `25`입니다.

**ODBC 드라이버 로깅 옵션**
+ **`LogLevel`** - 드라이버 로깅에 대한 로그 수준입니다. 다음 중 하나여야 합니다.
  + **0**(OFF).
  + **1**(ERROR).
  + **2**(WARNING).
  + **3**(INFO).
  + **4**(DEBUG).

  기본값은 `1`(오류)입니다.

  **경고:** DEBUG 로깅 모드를 사용할 때 드라이버가 개인 정보를 로깅할 수 있습니다.
+ **`LogOutput`** - 로그 파일을 저장할 폴더입니다.

  기본값:
  + **Windows:** `%USERPROFILE%` 또는 `%HOMEDRIVE%%HOMEPATH%`(사용할 수 없는 경우)
  + **macOS 및 Linux:** `$HOME` 또는 함수 `getpwuid(getuid())` 반환 값의 필드 `pw_dir`(사용할 수 없는 경우)

**SDK 로깅 옵션**

 AWS SDK 로그 수준은 AWS IoT SiteWise ODBC 드라이버 로그 수준과 별개입니다. 하나를 설정해도 다른 하나에는 영향이 없습니다.

SDK 로그 수준은 환경 변수 `SW_AWS_LOG_LEVEL`을 사용하여 설정됩니다. 유효값은 다음과 같습니다.
+ `OFF`
+ `ERROR`
+ `WARN`
+ `INFO`
+ `DEBUG`
+ `TRACE`
+ `FATAL`

`SW_AWS_LOG_LEVEL`이 설정되지 않으면 SDK 로그 수준은 기본값인 `WARN`으로 설정됩니다.

## 프록시를 통해 연결
<a name="query-ODBC-connecting-proxy"></a>

ODBC 드라이버는 프록시를 AWS IoT SiteWise 통해에 연결할 수 있도록 지원합니다. 이 기능을 사용하려면 프록시 설정에 따라 다음 환경 변수를 구성하세요.
+ **`SW_PROXY_HOST`** - 프록시 호스트입니다.
+ **`SW_PROXY_PORT`** - 프록시 포트 번호입니다.
+ **`SW_PROXY_SCHEME`** - 프록시 체계(`http` 또는 `https`)입니다.
+ **`SW_PROXY_USER`** - 프록시 인증을 위한 사용자 이름입니다.
+ **`SW_PROXY_PASSWORD`** - 프록시 인증을 위한 사용자 암호입니다.
+ **`SW_PROXY_SSL_CERT_PATH`** - HTTPS 프록시에 연결하는 데 사용할 SSL 인증서 파일입니다.
+ **`SW_PROXY_SSL_CERT_TYPE`** - 프록시 클라이언트 SSL 인증서의 유형입니다.
+ **`SW_PROXY_SSL_KEY_PATH`** - HTTPS 프록시에 연결하는 데 사용할 프라이빗 키 파일입니다.
+ **`SW_PROXY_SSL_KEY_TYPE`** - HTTPS 프록시에 연결하는 데 사용되는 프라이빗 키 파일의 유형입니다.
+ **`SW_PROXY_SSL_KEY_PASSWORD`** - HTTPS 프록시에 연결하는 데 사용되는 프라이빗 키 파일의 암호입니다.

# AWS IoT SiteWise ODBC 드라이버의 연결 문자열 예제
<a name="query-ODBC-connecting-examples"></a>

## IAM 자격 증명을 사용하여 ODBC 드라이버에 연결하는 예제
<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;
```

## 프로필을 사용하여 ODBC 드라이버에 연결하는 예제
<a name="query-ODBC-connecting-examples-profile"></a>

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

드라이버는 `~/.aws/credentials`에 제공된 자격 증명을 사용하여 연결을 시도하거나, 환경 변수 `AWS_SHARED_CREDENTIALS_FILE`에 파일이 지정된 경우 해당 파일의 자격 증명을 사용하여 연결을 시도합니다.

## Okta를 사용하여 ODBC 드라이버에 연결하는 예제
<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);
```

## Azure Active Directory(AAD)를 사용하여 ODBC 드라이버에 연결하는 예제
<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);
```

## 지정된 엔드포인트와 로그 수준 2(경고)를 사용하여 ODBC 드라이버에 연결하는 예제
<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;
```

# ODBC 드라이버와의 연결 문제 해결
<a name="query-ODBC-connecting-troubleshooting"></a>

**참고**  
사용자 이름과 암호가 DSN에 이미 지정된 경우 ODBC 드라이버 관리자가 요청할 때 다시 지정하지 마십시오.

연결 문자열에서 연결 문자열 옵션이 두 번 이상 전달되면 `Re-writing (connection string option) (have you specified it several times?)`라는 메시지와 함께 오류 코드 `01S02`가 발생합니다. 옵션을 두 번 이상 지정하면 오류가 발생합니다. DSN과 연결 문자열을 사용하여 연결할 때 DSN에 이미 연결 옵션이 지정되어 있으면 연결 문자열에 다시 지정하지 마세요.