Microsoft SQL Server (MSSQL)

네트워크 트래픽 암호화

Looker에서는 Looker 애플리케이션과 데이터베이스 간의 네트워크 트래픽을 암호화할 것을 적극 권장합니다. 보안 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려하세요.

SSL 암호화를 사용하는 데 관심이 있다면 Microsoft 설명서를 참고하세요.

서버 인증 구성

MSSQL 서버에서 Looker에 'SQL Server 인증'이 필요합니다. MSSQL 서버가 'Windows 통합 인증'만으로 구성된 경우 서버 구성을 'Windows 통합 인증 및 SQL Server 인증'으로 변경하세요.

제대로 설정되어 있지 않으면 Looker에서 연결할 수 없습니다. SQL Server 로그 메시지에 "SQL 인증을 사용하여 로그인하려는 시도가 실패했습니다. Windows 인증 전용 서버 구성입니다."

변경이 필요한 경우 다음 단계를 완료하세요.

  1. SQL Server Management Studio 객체 탐색기에서 서버를 마우스 오른쪽 버튼으로 클릭한 다음 속성을 클릭합니다.
  2. 보안 페이지의 서버 인증 아래에서 새 서버 인증 모드를 선택한 후 확인을 클릭합니다.
  3. SQL Server Management Studio 대화상자에서 OK를 클릭하여 SQL Server를 다시 시작해야 한다는 요구사항을 확인합니다.
  4. 객체 탐색기에서 서버를 마우스 오른쪽 버튼으로 클릭한 다음 다시 시작을 클릭합니다. SQL Server 에이전트가 실행 중인 경우 다시 시작해야 합니다.

자세한 내용은 Microsoft 문서를 참고하세요.

Looker 사용자 만들기

Looker에서 SQL Server 인증을 사용하여 데이터베이스를 인증합니다. 도메인 계정 사용은 지원되지 않습니다.

계정을 만들려면 다음 명령어를 실행합니다. some_password_here를 안전하고 고유한 비밀번호로 변경하세요.

CREATE LOGIN looker
  WITH PASSWORD = 'some_password_here';
USE MyDatabase;
CREATE USER looker FOR LOGIN looker;
GO

Looker 사용자에게 테이블에서 SELECT 권한을 부여합니다.

Looker에는 쿼리하려는 각 테이블 또는 스키마에 대한 SELECT 권한이 필요합니다. SELECT 권한을 할당하는 방법에는 여러 가지가 있습니다.

  • 개별 스키마에 SELECT 권한을 부여하려면 각 스키마에 다음 명령어를 실행하세요.

    GRANT SELECT on SCHEMA :: 'schema_name' to looker;
    
  • 개별 테이블에 SELECT 권한을 부여하려면 각 테이블에 다음 명령어를 실행하세요.

    GRANT SELECT on OBJECT :: 'schema_name'.'table_name' to looker;
    
  • MSSQL 버전 2012 이상에서는 다음 명령어를 사용하여 Looker 사용자에게 db_datareader 역할을 할당할 수도 있습니다.

    USE MyDatabase;
    ALTER ROLE db_datareader ADD MEMBER looker;
    GO
    

Looker 사용자에게 쿼리 실행을 보고 중지할 수 있는 권한 부여

Looker에서 현재 실행 중인 쿼리를 감지하고 중지할 권한이 있어야 하며 다음 권한이 필요합니다.

  • ALTER ANY CONNECTION
  • VIEW SERVER STATE

이러한 권한을 부여하려면 다음 명령어를 실행하세요.

USE Master;
GRANT ALTER ANY CONNECTION TO looker;
GRANT VIEW SERVER STATE to looker;
GO

Looker 사용자에게 테이블 생성 권한 부여

Looker 사용자에게 PDT를 만들 권한을 부여하려면 다음 명령어를 실행합니다.

USE MyDatabase;
GRANT CREATE TABLE to looker;
GO

임시 스키마 설정

Looker 사용자가 소유한 스키마를 만들고 Looker 사용자에게 필요한 권한을 부여하려면 다음 명령어를 실행합니다.

CREATE SCHEMA looker_scratch AUTHORIZATION looker;

연결 추가

Looker 인터페이스를 사용하여 데이터베이스 연결을 구성합니다. Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.

연결 정보를 입력합니다. 대부분의 설정은 대부분의 데이터베이스 언어에 일반적이며 Looker를 데이터베이스에 연결 문서 페이지에 설명되어 있습니다. 다음 필드에는 Microsoft SQL Server에 적용되는 추가 정보가 나와 있습니다.

  • 언어: 적절한 버전의 Microsoft SQL Server를 선택합니다.
  • 원격 호스트:포트: 호스트 이름과 포트를 입력합니다 (기본 포트는 1433).

    기본값이 아닌 포트를 1433이 아닌 포트로 지정해야 하고 데이터베이스에서 콜론 대신 쉼표를 사용해야 하는 경우 연결 설정의 추가 매개변수 필드에 useCommaHostPortSeparator=true를 추가하여 원격 호스트:포트 필드에 쉼표를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

    jdbc:sqlserver://hostname,1434

이 설정 테스트를 클릭하여 데이터베이스 연결이 성공했는지 확인합니다. 문제 해결 정보는 데이터베이스 연결 테스트 문서 페이지를 참조하세요.

연결 추가를 클릭하여 연결을 저장합니다.

Kerberos 인증 구성

MSSQL 데이터베이스에서 Kerberos 인증을 사용하는 경우 다음 단계에 따라 Kerberos를 사용해 연결하도록 Looker를 구성하세요.

Looker에서 호스팅하는 인스턴스의 관리자는 Looker 분석가에게 MSSQL 데이터베이스의 Kerberos 인증 구성 지원을 요청해야 합니다.

Kerberos 클라이언트 구성 설정

가장 먼저 해야 할 일은 여러 소프트웨어의 설치와 Looker 머신에 여러 파일의 존재를 확인하는 것입니다.

Kerberos 클라이언트

kinit을 실행하여 Looker 머신에 Kerberos 클라이언트가 설치되어 있는지 확인합니다. Kerberos 클라이언트가 아닌 경우 Kerberos 클라이언트의 바이너리를 설치합니다.

예를 들어 Redhat/CentOS에서는 다음과 같습니다.

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

자바 8

자바 8은 Looker 머신과 Looker 사용자의 PATHJAVA_HOME에 설치해야 합니다. 필요한 경우 looker 디렉터리에 로컬로 설치합니다.

자바 암호화 확장 프로그램

  1. 이 Oracle 사이트에서 자바 8용 자바 암호화 확장 프로그램 (JCE)을 다운로드하여 설치합니다.

    • 자바 설치를 위한 jre/lib/security 디렉터리를 찾습니다.
    • 이 디렉터리에서 JAR 파일 local_policy.jarUS_export_policy.jar를 삭제합니다.
    • 이 두 파일을 JCE Unlimited Strength Jurisdiction Policy Files 다운로드에 포함된 JAR 파일로 바꿉니다.

    JCE가 설치된 자바 8 이전 버전의 자바를 사용할 수도 있지만, 권장되지 않습니다.

  2. ~looker/.bash_profile에서 JAVA_HOMEPATH를 업데이트하여 올바른 자바 및 source ~/.bash_profile 설치를 가리키거나 로그아웃했다가 다시 로그인합니다.

  3. java -version로 자바 버전을 확인합니다.

  4. echo $JAVA_HOME을 사용하여 JAVA_HOME 환경 변수를 확인합니다.

gss-jaas.conf

looker 디렉터리에 다음 콘텐츠가 포함된 gss-jaas.conf 파일을 만듭니다.

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

테스트에 필요한 경우 다음과 같이 debug=true을 이 파일에 추가할 수 있습니다.

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};

krb5.conf

Looker를 실행하는 서버에도 유효한 krb5.conf 파일이 있어야 합니다. 기본적으로 이 파일은 /etc/krb5.conf에 있습니다. 다른 위치에 있는 경우 환경(셸 환경의 KRB5_CONFIG)에 표시되어야 합니다.

다른 Kerberos 클라이언트 시스템에서 복사해야 할 수도 있습니다.

lookerstart.cfg

looker 디렉터리 (looker 시작 스크립트가 포함된 디렉터리)에서 다음 줄이 포함된 lookerstart.cfg이라는 파일을 만들어 gss-jaas.confkrb5.conf 파일을 가리킵니다.

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

krb5.conf 파일이 /etc/krb5.conf에 없는 경우 다음 변수도 추가해야 합니다.

  -Djava.security.krb5.conf=/path/to/krb5.conf

디버깅을 위해 다음 변수를 추가합니다.

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

그런 다음 ./looker restart를 사용하여 Looker를 다시 시작합니다.

Kerberos로 인증

사용자 인증

  1. krb5.conf/etc/에 없으면 환경 변수 KRB5_CONFIG를 사용하여 위치를 나타냅니다.

  2. klist 명령어를 실행하여 Kerberos 티켓 캐시에 유효한 티켓이 있는지 확인합니다.

  3. 티켓이 없는 경우 kinit username@REALM 또는 kinit username를 실행하여 티켓을 만듭니다.

  4. Looker에서 사용하는 계정은 헤드리스일 가능성이 높으므로 Kerberos에서 keytab 파일을 가져와 장기적으로 사용할 사용자 인증 정보를 저장할 수 있습니다. kinit -k -t looker_user.keytab username@REALM과 같은 명령어를 사용하여 Kerberos 티켓을 가져옵니다.

티켓 자동 갱신

활성 티켓을 Kerberos 티켓 캐시에 유지하기 위해 매우 자주 실행되는 크론 작업을 설정합니다. 실행 빈도는 클러스터 구성에 따라 다릅니다. klist에서 티켓 만료 기간을 표시합니다.

Looker 연결 구성

데이터베이스에 Looker 연결 문서 페이지의 안내에 따라 MSSQL 데이터베이스에 연결을 만듭니다. 연결 설정 페이지의 추가 매개변수 섹션에 다음을 추가합니다.

;integratedSecurity=true;authenticationScheme=JavaKerberos

일부 네트워크는 두 개의 Kerberos 영역(Windows Active Directory 및 Linux 및 기타 비 Windows 시스템용)에 구성됩니다. 이 경우 Linux 중심의 렐름과 Active Directory 영역이 서로 신뢰하도록 구성된 경우 이를 '교차 영역 인증'이라고 합니다.

네트워크에서 교차 영역 인증을 사용하는 경우 MSSQL Server의 Kerberos 주 구성원을 명시적으로 지정해야 합니다. 추가 매개변수 필드에 다음을 추가합니다.

;serverSpn=service_name/FQDN\:PORT@REALM

FQDNPORT@REALM를 네트워크 정보로 바꿉니다. 예를 들면 다음과 같습니다.

;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM

또한 Looker의 연결 설정 페이지에는 사용자 이름비밀번호 입력란만 입력할 수 있지만 Kerberos에는 필요하지 않습니다. 입력란에 더미 값을 입력합니다.

연결을 테스트하여 올바르게 구성되었는지 확인합니다.

기능 지원

Looker에서 일부 기능을 지원하려면 데이터베이스 언어도 이 기능을 지원해야 합니다.

최신 버전의 Looker에서 Microsoft SQL Server 2008 이상은 다음과 같은 Looker 기능을 지원합니다.

Looker 최신 출시 버전에서 Microsoft SQL Server 2016+에서는 다음 Looker 기능을 지원합니다.

Looker 최신 출시 버전에서 Microsoft SQL Server 2017 이상은 다음과 같은 Looker 기능을 지원합니다.

다음 단계

데이터베이스 구성을 완료한 후 이 지침에 따라 Looker에서 데이터베이스에 연결할 수 있습니다.