Oracle

Mengenkripsi lalu lintas jaringan

Praktik terbaiknya adalah mengenkripsi traffic jaringan antara aplikasi Looker dan database Anda. Pertimbangkan salah satu opsi yang dijelaskan di halaman dokumentasi Mengaktifkan akses database yang aman.

Jika Anda tertarik untuk menggunakan enkripsi SSL, lihat dokumentasi Oracle.

Membuat pengguna Looker

Pertama, buat pengguna Looker yang ditetapkan:

-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

Selanjutnya, beri pengguna Looker baru kemampuan untuk membuat sesi:

GRANT CREATE SESSION TO LOOKER;

Terakhir, beri pengguna Looker izin SELECT yang sesuai untuk tabel data yang ingin Anda akses dari Looker. Jika ingin mengakses tabel tambahan di masa mendatang, Anda juga perlu memberikan SELECT pada tabel baru tersebut.

GRANT SELECT ON -- <all tables that will be used by looker>;

Memastikan Looker dapat melihat semua tabel

Memastikan Looker dapat melihat semua tabel

Looker mungkin tidak dapat mengidentifikasi tabel (terutama tabel kosong) tanpa mengumpulkan statistik di Oracle terlebih dahulu. Jika tabel yang Anda butuhkan tidak muncul di LookML atau SQL Runner yang dihasilkan, coba jalankan:

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

Untuk metode alternatif, baca dokumentasi Oracle Anda.

Menyiapkan objek database utama

Oracle DBA Anda harus menyiapkan objek dan izin berikut di Oracle. Perintah berikut membuat LOOKER_SESSION dan LOOKER_SQL sebagai sinonim untuk V$SESSION dan V$SQL.

Jalankan perintah berikut sebagai pengguna root untuk menyelesaikan penyiapan ini. Contoh ini mengasumsikan bahwa nama pengguna Looker adalah 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 below:
-- 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 deployment
    "SERIAL#",
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    USERNAME='LOOKER';

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

Menyiapkan agregat simetris

Oracle DBA Anda harus menyiapkan fungsi LOOKER_HASH untuk mengaktifkan agregat simetris. Fungsi LOOKER_HASH adalah sinonim dari fungsi dbms_crypto.hash Oracle. DBA juga harus membuat sinonim dan hak istimewa terkait. Perintah berikut mengasumsikan bahwa nama pengguna Looker adalah 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;

Bergantung pada konfigurasi database Oracle Anda, awalan SYS mungkin adalah SYSDBA, ADMIN, atau tidak diperlukan.

Menyiapkan tabel turunan persisten

Untuk mengaktifkan tabel turunan persisten, berikan izin UNLIMITED TABLESPACE dan CREATE TABLE kepada pengguna Looker. Perintah berikut mengasumsikan bahwa nama pengguna Looker adalah LOOKER:

GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;

Menyiapkan penghentian kueri

Ikuti petunjuk ini untuk mengonfigurasi penghentian kueri untuk deployment Oracle standar atau deployment Amazon RDS.

Deployment Oracle standar

Untuk menyiapkan penghentian kueri dalam deployment Oracle standar, DBA Oracle harus membuat prosedur LOOKER_KILL_QUERY sebagai sinonim dari ALTER SYSTEM KILL SESSION. Untuk melakukannya, jalankan perintah berikut:

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 deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    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 juga perlu menjalankan perintah terkait berikut:

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;

Bergantung pada konfigurasi database Oracle Anda, awalan SYS mungkin adalah SYSDBA, ADMIN, atau tidak diperlukan.

Deployment Amazon RDS

Dalam deployment Oracle Amazon RDS, prosedur rdsadmin.rdsadmin_util.kill digunakan untuk menghentikan kueri. Untuk menggunakan prosedur ini, pengguna database Looker harus diberi peran DBA.

Karena DBA merupakan peran database yang ditingkatkan, Anda dapat mempertimbangkan untuk melewatkan langkah ini dan tidak mengakhiri kueri di Looker.

Untuk memberikan kemampuan menghentikan kueri pengguna database Looker, jalankan perintah berikut:

GRANT DBA TO LOOKER;

Membuat koneksi Looker ke database Anda

Di bagian Admin Looker, pilih Connections, lalu klik Add Connection.

Isi detail koneksi. Sebagian besar setelan bersifat umum untuk sebagian besar dialek database. Lihat halaman dokumentasi Menghubungkan Looker ke database untuk mendapatkan informasi. Setelan berikut khusus untuk Oracle:

  • Name: Menentukan nama koneksi. Beginilah cara Anda merujuk koneksi dalam project LookML.
  • Dialek: Oracle.
  • Menggunakan TNS: Aktifkan koneksi Transparent Network Substrate (TNS).
  • Host: Nama host atau alias TNS.
  • Port: Port database.
  • Database: Nama database (jika tidak menggunakan TNS).
  • Nama Layanan: Nama layanan (jika menggunakan TNS).
  • Username: Nama pengguna database atau Temp Database jika PDT diaktifkan.
  • Sandi: Sandi pengguna database.
  • Aktifkan PDT: Gunakan tombol ini untuk mengaktifkan tabel turunan persisten. Jika PDT diaktifkan, jendela Connection akan menampilkan setelan PDT tambahan dan bagian PDT Overrides.
  • Temp Database: Di Oracle, pengguna adalah sebuah skema, sehingga harus ditetapkan sebagai nama pengguna database. Untuk contoh ini, Anda akan menggunakan nilai skema sementara LOOKER.
  • Jumlah maksimum koneksi builder PDT: Tentukan jumlah kemungkinan build PDT serentak pada koneksi ini. Menetapkan nilai ini terlalu tinggi dapat berdampak negatif pada waktu kueri. Untuk mengetahui informasi selengkapnya, lihat halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Tambahan parameter JDBC: Biarkan kosong, karena Oracle tidak mendukung parameter JDBC tambahan.
  • Jadwal Pemeliharaan Grup Data dan PDT: Ekspresi cron yang menunjukkan kapan Looker harus memeriksa grup data dan tabel turunan persisten. Baca selengkapnya tentang setelan ini di dokumentasi Jadwal Pemeliharaan PDT dan Grup Data.
  • SSL: Centang untuk menggunakan koneksi SSL.
  • Verifikasi SSL: Abaikan kolom ini. Oracle akan menggunakan Java Truststore default untuk memverifikasi SSL.
  • Koneksi maksimum per node: Setelan ini dapat dibiarkan pada nilai default di awal. Baca selengkapnya tentang setelan ini di bagian Koneksi maksimum per node di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Waktu Tunggu Kumpulan Koneksi: Setelan ini dapat dibiarkan pada nilai default di awal. Baca selengkapnya tentang setelan ini di bagian Waktu Tunggu Kumpulan Koneksi di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Precache SQL Runner: Agar SQL Runner tidak melakukan pramuat informasi tabel dan memuat informasi tabel hanya saat tabel dipilih, hapus centang opsi ini. Baca selengkapnya tentang setelan ini di bagian Precache SQL Runner di halaman dokumentasi Menghubungkan Looker ke database Anda.
  • Zona Waktu Database: Menentukan zona waktu yang digunakan di database. Kosongkan kolom ini jika Anda tidak ingin melakukan konversi zona waktu. Lihat halaman dokumentasi Menggunakan setelan zona waktu untuk informasi selengkapnya.

Untuk memverifikasi bahwa koneksi berhasil, klik Test. Lihat halaman dokumentasi Menguji konektivitas database untuk informasi pemecahan masalah.

Untuk menyimpan setelan ini, klik Hubungkan. Di bagian Admin Looker, pilih Connections, lalu klik Add Connection.

Dukungan fitur

Agar Looker dapat mendukung beberapa fitur, dialek database Anda juga harus mendukung fitur tersebut.

Oracle mendukung fitur berikut mulai Looker 24.6:

Fitur Didukung?
Level Dukungan
Didukung
Looker (Google Cloud core)
Ya
Agregat Simetris
Ya
Tabel Turunan
Ya
Tabel Turunan SQL Persisten
Ya
Tabel Turunan Berbasis Persisten
Ya
Tampilan Stabil
Ya
Penghentian Kueri
Ya
Pivot berbasis SQL
Ya
Zona waktu
Ya
SSL
Ya
Subtotal
Ya
Parameter Tambahan JDBC
Tidak
Peka Huruf Besar/Kecil
Ya
Jenis Lokasi
Ya
Jenis Daftar
Ya
Persentil
Ya
Persentil berbeda
Tidak
Proses Tampilan Runner SQL
Ya
Tabel Deskripsi Runner SQL
Ya
Indeks Tampilan Runner SQL
Ya
Pilihan Runner SQL 10
Ya
Jumlah Runner SQL
Ya
Penjelasan SQL
Tidak
Kredensial OAuth
Tidak
Komentar Konteks
Ya
Penggabungan Koneksi
Tidak
Sketsa HLL
Tidak
Awareness Gabungan
Ya
PDT inkremental
Tidak
Milidetik
Ya
Mikrodetik
Ya
Tampilan Terwujud
Tidak
Perkiraan Jumlah Berbeda
Tidak