Исключить пароль JDBC в виде открытого текста JDBC временное представление - PullRequest
0 голосов
/ 28 января 2019

Я использую временное представление для загрузки данных Oracle в Hive с использованием Spark SQL.Пример из документации Spark ниже:

CREATE TEMPORARY VIEW jdbcTable
USING org.apache.spark.sql.jdbc
OPTIONS (
  url "jdbc:postgresql:dbserver",
  dbtable "schema.tablename",
  user 'username',
  password 'password'
)

Это работает хорошо, но наличие пароля в виде открытого текста в представлении DDL означает, что пароль виден в журнале Spark Thrift Server.В pyspark я могу прочитать пароль, используя spark.jdbc.password (как в Как защитить пароль и имя пользователя в Spark (например, для соединений JDBC / доступа к базам данных RDBMS)? ) и передать значение через:

jdbc_password = spark.conf.get('spark.jdbc.password')
df = spark.read.format('jdbc').options(
    driver='oracle.jdbc.driver.OracleDriver',
    url='jdbc:oracle:thin://@host:1521/svc',
    user='db_user',
    password=jdbc_password,
...

Но я не могу найти способ сделать это в чистом Spark SQL для использования через Thrift Server.

Предполагая, что это невозможно, было бы здорово подключиться к API учетных данных.Опять же, я могу сделать это через Python, но не вижу чистого способа SQL сделать это.

Кто-нибудь знает, возможно ли избежать использования пароля в виде открытого текста во временном представлении?

(Я перефразировал этот вопрос, так как, по-моему, я изначально неправильно понял spark.jdbc.password)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...