Hi OmniSci Community,
I am using the pymapd connector to successfully connect my python program to my MapD database. Currently, the user credentials are stored in my code as plain text. I was wondering if there was a tool that existed similar to a pgpass file for postgres. I would like to store my password in some sort of separate document from the code. Is this possible?
If it matters… Using Python 3.6.6 on a Windows 10 Enterprise machine. Making connection to mapd running on Rhel 7 Server.
@zacharymostowsky I typically store my credentials in separate files and read them in at runtime. Here are some examples I authored that use this approach:
For these examples, I store the credentials in plaintext .json files and read them into a pandas dataframe with the following function, but you could do whatever you want with them.
dfkv = pd.read_json(keyfile, typ='series')
This doesn’t address the encryption portion of your question, though. Perhaps someone else has a suggestion?
I also do a similar thing to @easy’s suggestion, though in my case, I just define a regular python dictionary named credentials in an external file in the same directory as my python script. From there, I just do from filename import credentials.
from filename import credentials
An additional step for security would be to define a select-only user for your database, then use those credentials for your batch scripts. Anyone knowing the credentials could read from the database, but not have elevated permissions to modify it.
@easy and @randyzwitch thank you for your quick answers. These solutions should be secure enough for my current use case. Thanks!