콘텐츠로 이동

ODBC(Open Database Connectivity) 는 PlaidLink 에이전트가 실행되는 컴퓨터의 ODBC 설정을 통해 데이터베이스에 접근합니다. 전용 PlaidCloud 커넥터가 없는 데이터베이스에 사용하며, Agent Remote Export of SQL Result 같은 에이전트 단계에서 사용합니다. 연결을 만들려면 연결 유형으로 ODBC를 선택합니다.

ODBC 연결은 다음 두 가지 방식 중 하나로 작동합니다.

  • DSN을 통한 연결. ODBC 드라이버를 비워 두고 에이전트 컴퓨터에 설정된 데이터 소스(DSN)를 지정합니다. DSN에는 드라이버, 서버, 데이터베이스와 그 밖의 드라이버 설정이 들어 있으며, 연결 속성으로 이를 재정의할 수 있습니다. 모든 ODBC 드라이버에서 작동합니다.
  • 드라이버를 통한 연결. 에이전트 컴퓨터에 설치된 ODBC 드라이버를 선택하거나 입력한 다음 서버와 데이터베이스를 지정합니다. PlaidCloud는 드라이버에 Server와 Database 설정을 전달하고, 이어서 연결 속성을 전달합니다. Microsoft의 SQL Server 드라이버에서 작동합니다. 목록에서 제안하는 다른 드라이버를 포함해 그 밖의 드라이버에는 DSN을 사용하십시오.

데이터베이스마다 ODBC 드라이버의 설정이 다릅니다. DSN을 만들 때와 연결 속성을 작성할 때 드라이버가 허용하는 키워드는 드라이버 공급업체의 문서를 참조하십시오.

에이전트 컴퓨터에서 DSN 만들기

섹션 제목: “에이전트 컴퓨터에서 DSN 만들기”

에이전트가 어떤 계정으로 실행되더라도 DSN을 찾을 수 있도록, 에이전트가 실행되는 컴퓨터에 시스템 DSN으로 DSN을 설정합니다.

  1. ODBC Data Sources (64-bit) 를 엽니다.
  2. System DSN 탭에서 데이터베이스의 ODBC 드라이버를 사용하는 데이터 소스를 추가하고, 서버, 데이터베이스와 드라이버가 요구하는 그 밖의 설정을 입력합니다.
  3. 데이터 소스 이름을 기록해 둡니다. 연결에 이 이름을 입력합니다.

Linux에서 에이전트는 unixODBC를 통해 ODBC에 접근합니다.

  1. unixODBC와 데이터베이스의 ODBC 드라이버를 설치합니다.

  2. 드라이버가 odbcinst.ini에 대괄호로 묶인 이름으로 등록되어 있는지 확인합니다. 대부분의 드라이버 패키지는 설치할 때 자동으로 등록되며, odbcinst -q -d로 등록된 드라이버를 나열할 수 있습니다.

  3. 시스템 odbc.ini에 DSN 이름으로 된 섹션으로 데이터 소스를 추가합니다. Driver를 등록된 드라이버 이름으로 설정하고, 서버, 데이터베이스와 드라이버가 요구하는 그 밖의 설정을 추가합니다.

    [Sales]
    Driver=ODBC Driver 18 for SQL Server
    Server=sales-db.example.com
    Database=Sales
  4. 섹션 이름(여기서는 Sales)을 기록해 둡니다. 연결에 이 이름을 입력합니다.

odbcinst -j를 실행하면 시스템 odbcinst.ini와 odbc.ini의 위치(보통 /etc)를 확인할 수 있습니다. 사용자의 ~/.odbc.ini에 있는 DSN은 에이전트가 해당 사용자로 실행될 때만 찾을 수 있습니다.

PlaidLink 컨테이너 이미지에는 unixODBC는 포함되어 있지만 ODBC 드라이버는 포함되어 있지 않습니다. Docker 또는 Kubernetes에서 실행되는 에이전트에서 ODBC를 사용하려면, 이 이미지를 기반으로 드라이버를 설치하는 이미지를 빌드하고, DSN이 들어 있는 시스템 odbc.ini를 이미지에 추가하거나 컨테이너에 마운트하십시오. 이미지는 plaid 사용자로 실행되므로, 드라이버를 설치할 때는 root로 전환하고 설치 후에는 다시 plaid로 전환하십시오.

필드 필수 설명
ODBC 드라이버 아니요 DSN을 통해 연결하려면 비워 둡니다. 그렇지 않으면 에이전트 컴퓨터에 설치된 ODBC 드라이버의 이름이며, 해당 컴퓨터에 등록된 이름 그대로 입력해야 합니다. Windows에서는 ODBC Data Sources (64-bit) 의 Drivers 탭에 표시되는 이름, Linux에서는 odbcinst.ini의 섹션 이름입니다. 목록에는 일반적인 드라이버가 나타나며, 다른 드라이버는 직접 입력할 수 있습니다. 여기서는 Microsoft의 SQL Server 드라이버만 작동합니다. 목록에서 제안하는 다른 드라이버를 포함해 그 밖의 드라이버에는 이 필드를 비워 두고 DSN을 사용하십시오. 드라이버 이름에는 중괄호나 세미콜론을 사용할 수 없습니다.
데이터 소스 이름(DSN) 또는 서버 예 드라이버가 없으면 에이전트 컴퓨터에 있는 시스템 DSN의 이름입니다. 드라이버가 있으면 데이터베이스 서버의 호스트 이름이며, 기본 포트가 아닌 포트를 사용하는 SQL Server에는 host,port를 입력합니다.
데이터베이스 드라이버 사용 시 열 데이터베이스입니다. 드라이버가 없으면 DSN에 자체 데이터베이스가 지정되어 있으므로 사용할 수 없으며, 드라이버 없이 데이터베이스를 지정하면 저장이 거부됩니다.
연결 속성 아니요 드라이버의 다른 설정이며, ;로 구분한 KEY=value 쌍으로 입력합니다. 연결 속성을 참조하십시오.

이 연결에는 포트 필드가 없습니다. 기본 포트가 아닌 포트를 사용하는 SQL Server는 Microsoft의 SQL Server 드라이버가 포트 키워드를 받지 않으므로 서버에 host,port 형식으로 포트를 추가합니다. DSN을 사용하는 경우에는 DSN에서 포트를 설정하거나, 포트 키워드를 받는 드라이버에서는 PORT=5433 같은 속성으로 재정의합니다.

연결 속성은 어느 방식에서든 ODBC가 작성하는 형식 그대로 ODBC 설정을 드라이버에 전달합니다.

  • 드라이버를 사용하는 경우 연결 자체 설정 뒤에 추가됩니다. 읽기 전용 복제본에 연결하는 ApplicationIntent=ReadOnly처럼 드라이버에 필요한 그 밖의 설정에 사용합니다.
  • DSN을 사용하는 경우 PORT=5433이나 IBM i의 기본 라이브러리를 지정하는 DBQ=MYLIB처럼 DSN 자체 설정을 재정의합니다.

Encrypt=yes;ApplicationIntent=ReadOnly처럼 쌍은 ;로 구분합니다. ;가 들어 있는 값은 KEY={first;second}처럼 중괄호로 묶고, 중괄호 안에서 }는 }}로 씁니다. 키워드는 대문자로 드라이버에 전달되며, ODBC 키워드는 대소문자를 구분하지 않습니다.

다음 경우에는 저장이 거부됩니다.

  • KEY=value 쌍이 아닌 텍스트(닫히지 않은 중괄호, 값이 없는 키워드 포함)
  • 대소문자와 관계없이 두 번 이상 지정된 키워드
  • 연결이 자체 필드에서 설정하는 키워드: DRIVER, DSN, SERVER, DATABASE, UID, PWD, USER, USERID, USERNAME, PASSWORD
  • FILEDSN과 SAVEFILE: 에이전트가 컴퓨터의 파일에서 연결 설정을 읽거나 파일에 쓰게 되기 때문입니다.

드라이버가 속성에 자체 자격 증명 키워드를 받을 수 있으므로 연결 목록에서는 속성이 가려집니다. 연결 자체의 양식에서는 속성이 표시됩니다. 속성을 제거하려면 필드를 지웁니다. 사용자와 비밀번호는 인증 자격 증명에 입력합니다.

필드 설명
사용자 연결에 사용할 사용자입니다. DSN을 통해 연결하는 경우 비워 두면 DSN에 설정된 대로 로그인하며, SQL Server에서는 속성에 TRUSTED_CONNECTION=Yes를 추가하면 에이전트 자체 계정으로 로그인합니다. SQL Server 드라이버를 사용하고 사용자를 지정하지 않으면 연결은 에이전트 자체 계정, 즉 Windows 계정 또는 Linux의 Kerberos 티켓으로 로그인합니다.
싱글 사인온 인증 사용(비밀번호 없음, 사용자 선택 사항) 저장된 비밀번호 없이 연결합니다.
비밀번호 사용자의 비밀번호입니다(쓰기 전용). 편집할 때 비워 두면 저장된 비밀번호가 유지됩니다.

이 탭은 ODBC 연결에 적용되지 않습니다. 암호화 및 그 밖의 드라이버 옵션은 DSN 또는 연결 속성에서 설정하십시오.

이전 버전의 이 양식은 데이터베이스와 고정 목록에서 선택한 드라이버를 요구하고 포트를 채웠지만 드라이버에 전달하지는 않았으므로, 해당 연결은 연결할 수 없었습니다. 연결을 열어 다음 중 하나를 수행하십시오.

  • DSN을 통해 연결: ODBC 드라이버를 지우고 DSN을 입력한 다음 저장합니다. 저장하면 이전 데이터베이스가 지워집니다.
  • SQL Server 드라이버를 통해 연결: ODBC 드라이버가 에이전트 컴퓨터에 설치된 SQL Server 드라이버와 일치하는지 확인합니다. 이전 목록의 많은 이름은 드라이버가 등록되는 이름이 아니었습니다.

이전 목록의 드라이버가 남아 있는 연결은 드라이버 연결로 열립니다. 드라이버가 에이전트 컴퓨터에 설치된 SQL Server 드라이버가 될 때까지 연결에 실패하며, 그 밖의 데이터베이스는 DSN을 통해 연결하십시오.

저장하면 이전 포트도 지워집니다. DSN만 있고 데이터베이스가 없던 연결은 ODBC 드라이버가 비어 있는 상태로 열립니다.