Это интересная идея, но проблема в том, что я пытаюсь использовать Excel в соединении build it и логике сводных таблиц, а не использовать свою собственную. На самом деле у меня есть отдельная функция, которая делает что-то похожее на это, чтобы скрыть учетные данные, но это немного отличается от этой проблемы.

я есть файл Excel, который содержит серию соединений OLEDB, усиленных несколькими сводными таблицами. Я хотел бы создать функцию VBA, которая удаляет все пароли из нескольких строк подключения при закрытии файла (чтобы пароль пользователя не сохранялся). Сначала я подумал, что все, что мне нужно сделать, это установить для свойства «Сохранить пароль» значение false, что-то вроде этого:

Public Sub RemovePasswordByNamePrefix()
    Dim cn As Object
    Dim oledbCn As OLEDBConnection

    For Each cn In ThisWorkbook.connections
        Set oledbCn = cn.OLEDBConnection
        oledbCn.SavePassword = False          
    Next
End Sub

Должно работать правильно, закрыв файл и открыв его снова, вы больше не увидите пароль в строке подключения. Не должно быть "сохранено":

Неправильно, пароль все еще там ... Он был "сохранен". Не уверен, что эта функция должна делать. Может быть, есть ссылка на другой пароль? Итак, я попыталсяподход большой молотК сожалению, у него есть свои проблемы, и до сих пор я не получил эту работу.

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

Может быть, я мог бы сделать что-то вроде Regex, чтобы удалить только пароль из файла? Когда я делаю это в интерфейсе, мои кубы обновляются и запрашивают мои учетные данные, (интересно) произойдет ли это, если я сделаю это в VBA, даже если триггер находится после закрытия?

Нижняя линия: Каков наилучший способ предотвратить сохранение этих паролей в файле после его закрытия?

Ответы на вопрос(4)

Ваш ответ на вопрос