Скрытие простого текстового пароля с помощью командной строки sqlplus - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу использовать команду sqlplus с паролем, скрытым от просмотра, чтобы он не отображался в команде ps -ef.

Я знаю, что во всех интернет-блогах есть множество решений, но большинство из них, похоже, требуют прав администратора, и у меня ограниченный доступ на этом сервере.И остальные из них, похоже, не работают на меня.

Команда, которую я сейчас использую, выглядит следующим образом:

sqlplus -s SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID @some.sql

Легенда:

SOME_USERNAME: схема / пользователь

SOME_PASSWORD: пароль

SOMESID: SID для этой БД.

@some.sql: Файл sql, содержащий операторы вставки.

Любые указатели очень ценятся.

Обновление: забыл упомянуть, что эта команда sqlplus будет использоваться внутри сценария оболочки.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Как в этом случае ввести пароль из скрипта оболочки?

Вы можете использовать heredoc :

sqlplus -s /nolog <<!EOF
connect SOME_USERNAME/SOME_PASSWORD@somedns.intra.com:1500/SOMESID
@some.sql
!EOF

connect и @some.sql обрабатываются как входной поток для SQL * Plus, как если бы вы вводили их в интерактивном сеансе, и не являются частью первоначального вызова исполняемого файла - поэтому подробности соединения нев выводе ps.

Вы также можете использовать переменные, если хотите, между прочим, поскольку расширение переменной происходит в оболочке до того, как она передает поток в исполняемый файл - так что, хотя SQL * Plus не будетне понимаю, скажем $PASSWD, имея в виду, что в heredoc работает и передается фактическое значение переменной.

0 голосов
/ 20 февраля 2019
  • Используйте sqlplus -s SOME_USERNAME@\"somedns.intra.com:1500/SOMESID\" @some.sql и введите свой пароль в командной строке.

  • Или используйте внешнюю аутентификацию и вообще не используйте пароль

  • Наконец, SOMESID - это не SID, это имя службы.Синтаксис Easy Connect, который вы используете, работает только с именами сервисов.SID очень старые.

...