네트워크 트래픽 암호화
Looker 애플리케이션과 데이터베이스 사이에 네트워크 트래픽을 암호화하는 것이 가장 좋습니다. 안전한 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려해 보세요.
연결을 위한 Looker 호스트 설정
모든 Oracle ADWC 연결에는 SSL 및 인증서 인증이 필요합니다. Looker를 Oracle ADWC 인스턴스에 연결하려면 Oracle 월렛 파일을 다운로드하여 Looker 서버에 설치해야 합니다. 고객 호스팅 Looker 사용자인 경우 Looker 서버에 액세스할 수 있는 시스템 관리자가 필요합니다. Looker 호스팅 사용자는 Looker 지원팀에 문의합니다.
Looker 서버에 Oracle 월렛을 설치하려면 다음 안내를 따릅니다.
로컬 컴퓨터에 Oracle 월렛을 다운로드합니다.
Wallet_databasename.zip
와 같은 이름의 ZIP 파일이 생성됩니다.Looker 서버에서 월렛 ZIP 파일을 저장할 디렉터리를 만듭니다.
mkdir /home/looker/looker/credentials
로컬 컴퓨터에서 Looker 서버로 월렛 ZIP 파일을 복사합니다. 이 예시에서는
scp
를 사용하고 파일을/home/looker/looker/credentials
에 배치합니다.scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
월렛 ZIP 파일의 압축을 풉니다. 이 예시에서는
unzip
명령어를 사용합니다.cd /home/looker/looker/credentials unzip Wallet_databasename.zip
ls
명령어로 월렛의 콘텐츠를 확인합니다. 다음과 같은 파일이 있어야 합니다.ls cwallet.sso keystore.jks sqlnet.ora truststore.jks ewallet.p12 ojdbc.properties tnsnames.ora
Looker는 JDBC 씬 드라이버 18.3과 함께 Oracle 월렛으로 Oracle ADWC에 연결합니다. 이를 위해서는 데이터베이스에 대한 Oracle ADWC 서비스 수준의 TNS(Transparent Network Substrate) 별칭과 Oracle 월렛 파일에 대한 PATH가 필요합니다.
데이터베이스의 TNS 별칭을 가져오려면 다음 명령어를 실행합니다.
cat tnsnames.ora
dbname_high
,dbname_medium
,dbname_low
라는 3개의 TNS 별칭 중에서 선택할 수 있습니다. 이러한 별칭은 서로 다른 서비스 수준에 해당합니다. 프로토콜, 호스트, 포트, 서비스 이름, SSL 정보가 이 파일에 포함되어 있습니다. 이 예시에서는dbname_medium
를 사용합니다.
Looker 사용자 만들기
먼저 지정된 Looker 사용자를 만듭니다.
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
그런 다음 새 Looker 사용자에게 세션을 만들 수 있는 권한을 부여합니다.
GRANT CREATE SESSION TO LOOKER;
마지막으로 Looker 사용자에게 Looker에서 액세스하려는 데이터 테이블에 대한 적절한 SELECT
권한을 부여합니다. 나중에 추가 테이블에 액세스하려면 새 테이블에도 SELECT
권한을 부여해야 합니다.
GRANT SELECT ON -- <all tables that will be used by looker>;
Looker에서 모든 테이블을 볼 수 있는지 확인
Oracle에서 먼저 통계를 수집하지 않으면 Looker에서 테이블(특히 빈 테이블)을 식별하지 못할 수 있습니다. 필요한 테이블이 생성된 LookML 또는 SQL Runner에 표시되지 않으면 다음 명령어를 실행합니다.
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
다른 방법은 Oracle 문서를 참조하세요.
기본 데이터베이스 객체 설정
Oracle DBA는 Oracle에 다음 객체 및 권한을 설정해야 합니다. 다음 명령어는 LOOKER_SESSION
및 LOOKER_SQL
를 V$SESSION
및 V$SQL
의 동의어로 만듭니다.
이 설정을 완료하려면 루트 사용자로 다음 명령어를 실행하세요. 이 예시에서는 Looker 사용자의 이름이 LOOKER
라고 가정합니다.
CREATE OR REPLACE VIEW LOOKER_SQL
AS
SELECT
sql.SQL_ID,
sql.SQL_TEXT
FROM
V$SQL sql,
v$session sess
WHERE
sess.SQL_ADDRESS = sql.ADDRESS AND
sess.username='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;
GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;
-- Pay special attention to the comments:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
SELECT
SID,
USERNAME,
TYPE,
STATUS,
SQL_ID,
-- If using a single node Oracle ADWC deployment
"SERIAL#",
-- If using a clustered Oracle ADWC deployment
(SERIAL# || ',' || INST_ID) AS "SERIAL#",
AUDSID
-- If using a single node Oracle ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
USERNAME='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;
GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;
대칭 집계 설정
대칭 집계를 사용 설정하려면 Oracle DBA에서 LOOKER_HASH
함수를 설정해야 합니다. LOOKER_HASH
함수는 Oracle dbms_crypto.hash
함수의 동의어입니다. DBA는 관련 동의어와 권한도 만들어야 합니다. 다음 예시에서는 Looker 사용자의 이름이 LOOKER
라고 가정합니다.
CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
RETURN raw AS
BEGIN
return(dbms_crypto.HASH(bytes, prec));
END;
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;
GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;
GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;
Oracle 데이터베이스 구성에 따라
SYS
프리픽스가SYSDBA
,ADMIN
이거나 필요하지 않을 수 있습니다.
영구 파생 테이블 설정
영구 파생 테이블을 사용 설정하려면 Looker 사용자에게 UNLIMITED TABLESPACE
및 CREATE TABLE
권한을 부여하세요. 다음 명령어는 Looker 사용자의 이름이 LOOKER
라고 가정합니다.
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
쿼리 종료 설정
쿼리 종료를 설정하려면 Oracle DBA는 LOOKER_KILL_QUERY
프로시져를 ALTER SYSTEM KILL SESSION
의 동의어로 만들어야 합니다. 이렇게 하려면 다음 명령어를 실행합니다.
CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
p_serial# in varchar2)
IS
cursor_name pls_integer default dbms_sql.open_cursor;
ignore pls_integer;
BEGIN
SELECT
COUNT(*) INTO IGNORE
-- If using a single node Oracle ADWC deployment
FROM V$SESSION
-- If using a clustered Oracle ADWC deployment
FROM GV$SESSION
WHERE
username = USER
AND sid = p_sid
-- If using a single node Oracle ADWC deployment
AND serial# = p_serial#;
-- If using a clustered Oracle ADWC deployment
AND (SERIAL# || ',' || INST_ID) = p_serial#;
IF (ignore = 1)
THEN
dbms_sql.parse(cursor_name,
'ALTER SYSTEM KILL SESSION '''
|| p_sid || ',' || p_serial# || '''',
dbms_sql.native);
ignore := dbms_sql.execute(cursor_name);
ELSE
raise_application_error(-20001,
'You do not own session ''' ||
p_sid || ',' || p_serial# ||
'''');
END IF;
END;
DBA는 다음과 같은 관련 명령어도 실행해야 합니다.
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;
Oracle 데이터베이스 구성에 따라
SYS
프리픽스가SYSDBA
,ADMIN
이거나 필요하지 않을 수 있습니다.
데이터베이스에 대한 Looker 연결 만들기
다음 단계에 따라 Looker에서 데이터베이스로 이어지는 연결을 만듭니다.
- Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.
연결 세부정보를 작성합니다. 대다수의 설정은 대부분의 데이터베이스 언어에 공통적으로 적용됩니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요. 다음 설정은 Oracle ADWC 전용입니다.
- 언어: Oracle ADWC.
- TNS 사용: TNS(Transparent Network Substrate) 연결을 사용 설정합니다.
- 호스트: 호스트 이름 또는 TNS 별칭입니다. 이 예시에서는
dbname_medium
입니다. - 포트: 기본값으로 둡니다. Looker는
tnsnames.ora
파일에서 포트를 찾습니다. - 서비스 이름: 비워 둡니다. Looker는
tnsnames.ora
파일에서 서비스 이름을 찾습니다. - 사용자 이름: 데이터베이스 사용자 이름 또는 임시 데이터베이스(PDT가 사용 설정된 경우)입니다.
- 비밀번호: 데이터베이스 사용자 비밀번호입니다.
- PDT 사용 설정: 이 전환 버튼으로 영구 파생 테이블을 사용 설정합니다. PDT가 사용 설정되면 연결 창에 추가 PDT 설정과 PDT 재정의 섹션이 표시됩니다.
- 임시 데이터베이스: Oracle에서 사용자는 스키마이므로 데이터베이스 사용자 이름으로 지정해야 합니다. 이 예시에서는 임시 스키마 값
LOOKER
를 사용합니다. - 추가 JDBC 매개변수: Looker 서버에서 Oracle 월렛에 대한 PATH입니다. 이 예시에서는
/home/looker/looker/credentials
입니다. - Looker가 호스팅하는 기존 배포에서 이 값은
/home/lookerops/looker/credentials
입니다. - 차세대 호스팅의 Looker 호스팅 배포에서 이 값은
/app/credentials
입니다. - SSL 및 SSL 확인: 이 필드는 무시해도 됩니다. Looker는 항상 Oracle ADWC와 함께 SSL을 사용합니다.
제대로 연결되었는지 확인하려면 테스트를 클릭합니다. 문제 해결 정보는 데이터베이스 연결 테스트 문서 페이지를 참조하세요. 테스트를 클릭하면 Looker가 다음과 같은 JDBC 문자열을 빌드합니다.
jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials
이러한 설정을 저장하려면 연결을 클릭합니다.
기능 지원
Looker가 특정 기능을 지원하려면 데이터베이스 언어도 해당 기능을 지원해야 합니다.
Oracle ADWC는 Looker 24.18부터 다음 기능을 지원합니다.
기능 | 지원 여부 |
---|---|
지원 수준 | 통합 |
Looker(Google Cloud 핵심 서비스) | 아니요 |
대칭 집계 | 예 |
파생 테이블 | 예 |
영구 SQL 파생 테이블 | 예 |
영구 기본 파생 테이블 | 예 |
안정적인 뷰 | 아니요 |
쿼리 종료 | 예 |
SQL 기반 피벗 | 예 |
시간대 | 예 |
SSL | 예 |
소계 | 예 |
JDBC 추가 매개변수 | 아니요 |
대소문자 구분 | 예 |
위치 유형 | 예 |
목록 유형 | 예 |
백분위수 | 예 |
고유 백분위수 | 아니요 |
SQL Runner 표시 프로세스 | 예 |
SQL Runner 설명 테이블 | 예 |
SQL Runner 표시 색인 | 아니요 |
SQL Runner 선택 10 | 예 |
SQL Runner 카운트 | 예 |
SQL 설명 | 아니요 |
OAuth 사용자 인증 정보 | 아니요 |
컨텍스트 주석 | 예 |
연결 풀링 | 아니요 |
HLL 스케치 | 아니요 |
집계 인식 | 예 |
증분 PDT | 아니요 |
밀리초 | 예 |
마이크로초 | 예 |
구체화된 뷰 | 아니요 |
대략적인 고유값 | 아니요 |