Как скрыть пароль в Database Connection? - PullRequest
0 голосов
/ 07 мая 2019

Я пишу программу для чтения базы данных Oracle из Python.

Большая проблема у меня заключается в том, что я хочу скрыть пароль.Если необходимо, я хочу, чтобы пароль вводился даже с помощью текстового поля.

Вот строка кода, которую я знаю, чтобы подключиться к базе данных Oracle с Python.

db_conn = cx_Oracle.connect(user=r'myUserName', password='myPassword', dsn=dsn_tns)

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Лучшее решение, вообще не указывать пароль в определении DB LINK, тогда нечего скрывать.

Как это сделать?Используйте кошелек.

@ connor-mcdonald показывает, как это сделать здесь.https://connor -mcdonald.com / 2015/09/21 / connection-shortcuts-with-a-wallet /

Если вы читаете документы по кошельку, они обычно говорят о клиентах.В этом случае вы настраиваете кошелек на сервере, и база данных «является» клиентом, по крайней мере, при открытии соединения с удаленной базой данных через DB_LINK он получит требуемый пароль из кошелька, как определено вэто sqlnet.ora config.

Также (любезно предоставлено @OldProgrammer) вот соответствующая статья с сайта cx_oracle об использовании Oracle Wallet .

0 голосов
/ 07 мая 2019

Вы можете создать функцию для чтения информации для входа в систему:

#
# This function gets the login information out of a credentials file
#
def get_login_info(file):
    # Create an array of the lines of the file
    line = open(file, "r").readlines()
    # Create a new list to be used to append the cleaned / trimmed lines
    new_line = []
    # Loop through the file
    for a in line:
        # Get rid of any new lines ("enter")
        a = a.replace("\n", "")
        # Add the cleaned data to the new_line list
        new_line.append(a)
    # Set the username to be the first object
    username = new_line[0]
    # Set the password to be the second object
    password = new_line[1]

    # Return them
    return username, password

Затем используйте это и передайте в строку подключения:

db_conn = cx_Oracle.connect(user=username, password=password, dsn=dsn_tns)

Таким образом, файл примера может быть
:

JerryM
Mypassword2019

И он будет хранить JerryM как username и Mypassword2019 как password

...