네트워크 트래픽 암호화
Looker 애플리케이션과 데이터베이스 사이에 네트워크 트래픽을 암호화하는 것이 가장 좋습니다. 안전한 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려해 보세요.
SSL 암호화를 사용하려면 Microsoft 문서를 참조하세요.
서버 인증 구성
Looker에서는 MSSQL 서버에 'SQL Server 인증'을 요구합니다. MSSQL 서버가 'Windows 통합 인증'으로만 구성된 경우 서버 구성을 'Windows 통합 인증 및 SQL Server 인증'으로 변경합니다.
서버 구성이 제대로 설정되지 않을 경우 Looker에서 연결할 수 없습니다. 'SQL 인증을 사용한 로그인 시도에 실패했습니다. 서버가 Windows 인증으로만 구성됩니다.'와 같은 SQL Server 로그 메시지가 표시됩니다.
변경해야 할 경우 다음 단계를 수행하면 됩니다.
- SQL Server Management Studio 객체 탐색기에서 서버를 마우스 오른쪽 버튼으로 클릭한 다음 속성을 클릭합니다.
- 보안 페이지의 서버 인증에서 새 서버 인증 모드를 선택한 다음 확인을 클릭합니다.
- SQL Server Management Studio 대화상자에서 확인을 클릭하여 SQL Server를 다시 시작하기 위한 요구사항을 확인합니다.
- 객체 탐색기에서 서버를 마우스 오른쪽 버튼으로 클릭한 다음 다시 시작을 클릭합니다. SQL Server 에이전트가 실행 중인 경우에도 다시 시작해야 합니다.
자세한 내용은 Microsoft 문서에서 확인할 수 있습니다.
Looker 사용자 만들기
Looker는 SQL 서버 인증을 사용하여 데이터베이스를 인증합니다. 도메인 계정 사용은 지원되지 않습니다.
계정을 만들려면 다음 명령어를 실행합니다. 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;
Kerberos 인증 구성
MSSQL 데이터베이스에서 Kerberos 인증을 사용하는 경우 다음 섹션에 설명된 대로 Kerberos를 사용하여 연결하도록 Looker를 구성하는 단계를 따르세요.
Kerberos 클라이언트 구성 설정
먼저 여러 소프트웨어를 설치하고 Looker 머신에 여러 파일이 있는지 확인해야 합니다.
Kerberos 클라이언트
kinit
를 실행하여 Looker 머신에 Kerberos 클라이언트가 설치되어 있는지 확인합니다. Kerberos 클라이언트가 설치되지 않은 경우 Kerberos 클라이언트의 바이너리를 설치합니다.
예를 들어 Redhat 또는 CentOS의 경우 다음과 같습니다.
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8은 Looker 머신과 Looker 사용자의 PATH
및 JAVA_HOME
에 설치되어 있어야 합니다. 필요한 경우 looker
디렉터리에 로컬로 설치합니다.
Java 암호화 확장 프로그램
이 Oracle 다운로드 페이지에서 Java 8용 Java 암호화 확장 프로그램(JCE)을 다운로드하고 설치합니다.
- Java 설치에 사용되는
jre/lib/security
디렉터리를 찾습니다. - 이 디렉터리에서
local_policy.jar
및US_export_policy.jar
JAR 파일을 삭제합니다. - 이 두 파일을 JCE Unlimited Strength Jurisdiction Policy Files 다운로드에 포함된 JAR 파일로 바꿉니다.
JCE가 설치된 Java 8 이전의 Java 버전을 사용할 수는 있지만 권장하지 않습니다.
- Java 설치에 사용되는
Java 및
source ~/.bash_profile
의 올바른 설치를 가리키도록~looker/.bash_profile
의JAVA_HOME
및PATH
를 업데이트하거나 로그아웃했다가 다시 로그인합니다.java -version
로 Java 버전을 확인합니다.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.conf
및 krb5.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를 사용하여 인증
사용자 인증
krb5.conf
가/etc/
에 없는 경우 환경 변수KRB5_CONFIG
를 사용하여 위치를 표시합니다.klist
명령어를 실행하여 Kerberos 티켓 캐시에 유효한 티켓이 있는지 확인합니다.티켓이 없으면
kinit username@REALM
또는kinit username
을 실행하여 티켓을 만듭니다.Looker와 함께 사용되는 계정은 헤드리스일 가능성이 높으므로 Kerberos에서 keytab 파일을 가져와서 사용자 인증 정보를 저장하면 장기간 사용할 수 있습니다.
kinit -k -t looker_user.keytab username@REALM
과 같은 명령어를 사용하여 Kerberos 티켓을 얻습니다.
티켓 자동 갱신
Kerberos 티켓 캐시에 활성 티켓을 유지하기 위해 자주 실행되는 크론 작업을 설정합니다. 실행 빈도는 클러스터 구성에 따라 다릅니다. klist
는 티켓이 얼마나 빨리 만료되는지를 나타냅니다.
데이터베이스에 대한 Looker 연결 만들기
다음 단계에 따라 Looker에서 데이터베이스로 이어지는 연결을 만듭니다.
- Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.
언어 드롭다운 메뉴에서 사용 중인 Microsoft SQL Server 버전을 선택합니다.
원격 호스트 및 포트: 호스트 이름과 포트를 입력합니다(기본 포트는 1433).
1433 이외의 기본값이 아닌 포트를 지정하되 데이터베이스에 콜론 대신 쉼표를 사용해야 하는 경우 연결 설정의 추가 JDBC 매개변수 필드에
useCommaHostPortSeparator=true
를 추가하면 원격 호스트:포트에 쉼표를 사용할 수 있습니다. 예를 들면 다음과 같습니다.jdbc:sqlserver://hostname,1434
나머지 연결 세부정보를 작성합니다. 대다수의 설정은 대부분의 데이터베이스 언어에 공통적으로 적용됩니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요.
제대로 연결되었는지 확인하려면 테스트를 클릭합니다. 문제 해결 정보는 데이터베이스 연결 테스트 문서 페이지를 참조하세요.
이러한 설정을 저장하려면 연결을 클릭합니다.
Looker 연결 구성
데이터베이스에 Looker 연결 문서 페이지의 안내를 따라 MSSQL 데이터베이스에 대한 연결을 만듭니다. 연결 설정 페이지의 추가 JDBC 매개변수 섹션에 다음을 추가합니다.
;integratedSecurity=true;authenticationScheme=JavaKerberos
일부 네트워크는 Windows Active Directory용 렐름 1개와 Linux 및 기타 Windows 이외 시스템용 렐름 1개로 이루어진 총 2개의 Kerberos 렐름으로 구성됩니다. 이때 Linux 중심의 렐름과 Active Directory 렐름이 서로 신뢰하도록 구성하는 경우를 '교차 렐름 인증'이라고 합니다.
네트워크에서 교차 렐름 인증을 사용하는 경우 MSSQL 서버의 Kerberos 주 구성원을 명시적으로 지정해야 합니다. 추가 JDBC 매개변수 필드에 다음을 추가합니다.
;serverSpn=service_name/FQDN\:PORT@REALM
FQDN
및 PORT@REALM
을 네트워크 정보로 바꿉니다. 예를 들면 다음과 같습니다.
;serverSpn=MSSQLSvc/dbserver.internal.example.com:1433@AD.EXAMPLE.COM
또한 Looker는 연결 설정 페이지의 사용자 이름 및 비밀번호 필드를 입력해야 하지만 Kerberos에서는 필요하지 않습니다. 이 필드에 더미 값을 입력합니다.
연결을 테스트하여 올바르게 구성되었는지 확인합니다.
기능 지원
Looker가 특정 기능을 지원하려면 데이터베이스 언어도 해당 기능을 지원해야 합니다.
Microsoft SQL Server 2008 이상에서는 Looker 24.20부터 다음 기능을 지원합니다.
특성 | 지원 여부 |
---|---|
지원 수준 | 통합 |
Looker(Google Cloud 핵심 서비스) | 아니요 |
대칭 집계 | 예 |
파생 테이블 | 예 |
영구 SQL 파생 테이블 | 예 |
영구 기본 파생 테이블 | 예 |
안정적인 뷰 | 예 |
쿼리 종료 | 예 |
SQL 기반 피벗 | 예 |
시간대 | 아니요 |
SSL | 예 |
소계 | 예 |
JDBC 추가 파라미터 | 예 |
대소문자 구분 | 아니요 |
위치 유형 | 예 |
목록 유형 | 아니요 |
백분위수 | 아니요 |
고유 백분위수 | 아니요 |
SQL Runner 표시 프로세스 | 예 |
SQL Runner 설명 테이블 | 예 |
SQL Runner 표시 색인 | 예 |
SQL Runner 선택 10 | 예 |
SQL Runner 카운트 | 예 |
SQL 설명 | 아니요 |
OAuth 사용자 인증 정보 | 아니요 |
컨텍스트 주석 | 예 |
연결 풀링 | 아니요 |
HLL 스케치 | 아니요 |
집계 인식 | 예 |
증분 PDT | 아니요 |
밀리초 | 예 |
마이크로초 | 예 |
구체화된 뷰 | 아니요 |
대략적인 고유값 | 아니요 |
Microsoft SQL Server 2016은 Looker 24.20부터 다음 기능을 지원합니다.
특성 | 지원 여부 |
---|---|
지원 수준 | 지원됨 |
Looker(Google Cloud 핵심 서비스) | 아니요 |
대칭 집계 | 예 |
파생 테이블 | 예 |
영구 SQL 파생 테이블 | 예 |
영구 기본 파생 테이블 | 예 |
안정적인 뷰 | 예 |
쿼리 종료 | 예 |
SQL 기반 피벗 | 예 |
시간대 | 예 |
SSL | 예 |
소계 | 예 |
JDBC 추가 파라미터 | 예 |
대소문자 구분 | 아니요 |
위치 유형 | 예 |
목록 유형 | 아니요 |
백분위수 | 아니요 |
고유 백분위수 | 아니요 |
SQL Runner 표시 프로세스 | 예 |
SQL Runner 설명 테이블 | 예 |
SQL Runner 표시 색인 | 예 |
SQL Runner 선택 10 | 예 |
SQL Runner 카운트 | 예 |
SQL 설명 | 아니요 |
OAuth 사용자 인증 정보 | 아니요 |
컨텍스트 주석 | 예 |
연결 풀링 | 아니요 |
HLL 스케치 | 아니요 |
집계 인식 | 예 |
증분 PDT | 아니요 |
밀리초 | 예 |
마이크로초 | 예 |
구체화된 뷰 | 아니요 |
대략적인 고유값 | 아니요 |
Microsoft SQL Server 2017 이상에서는 Looker 24.20부터 다음 기능을 지원합니다.
특성 | 지원 여부 |
---|---|
지원 수준 | 지원됨 |
Looker(Google Cloud 핵심 서비스) | 예 |
대칭 집계 | 예 |
파생 테이블 | 예 |
영구 SQL 파생 테이블 | 예 |
영구 기본 파생 테이블 | 예 |
안정적인 뷰 | 예 |
쿼리 종료 | 예 |
SQL 기반 피벗 | 예 |
시간대 | 예 |
SSL | 예 |
소계 | 예 |
JDBC 추가 파라미터 | 예 |
대소문자 구분 | 아니요 |
위치 유형 | 예 |
목록 유형 | 아니요 |
백분위수 | 아니요 |
고유 백분위수 | 아니요 |
SQL Runner 표시 프로세스 | 예 |
SQL Runner 설명 테이블 | 예 |
SQL Runner 표시 색인 | 예 |
SQL Runner 선택 10 | 예 |
SQL Runner 카운트 | 예 |
SQL 설명 | 아니요 |
OAuth 사용자 인증 정보 | 아니요 |
컨텍스트 주석 | 예 |
연결 풀링 | 아니요 |
HLL 스케치 | 아니요 |
집계 인식 | 예 |
증분 PDT | 아니요 |
밀리초 | 예 |
마이크로초 | 예 |
구체화된 뷰 | 아니요 |
대략적인 고유값 | 아니요 |