私はローカルで実行しているos.system呼び出しに埋め込まれた別のアプリケーションのパスワードを持つPythonスクリプトを持っています。私はアクセス権を持っているDBに格納してパスワードを難読化し、DBに接続するためにWindows認証を使用します(スクリプトを自動化する必要があるため、PWのプロンプトが表示されません)。Pythonスクリプトのパスワードを保護
上記のことから、誰かが自分のスクリプトを修正し、パスワードを取得するために 'pw' varを印刷するだけの人はいませんか?他の開発者が自分のスクリプトにアクセスできる共有クラウド環境で作業しています。誰かが自分のスクリプトを修正してpwを取得できないように、それをさらに抽象化する方法はありますか?
import os
import sqlalchemy as sa
import urllib
import pandas as pd
#Specify the databases and servers used for reading and writing data.
read_server = '~~SERVER_HERE~~'
read_database = '~~DATABASE_HERE~~'
#Establish DB Connection
read_params = urllib.quote_plus("DRIVER={SQL Server};SERVER="+read_server+";DATABASE="+read_database+";TRUSTED_CONNECTION=Yes")
read_engine = sa.create_engine("mssql+pyodbc:///?odbc_connect=%s" % read_params)
#Read PW from DB and set to variable
pw_query = """ SELECT DISTINCT PW FROM ~~TABLENAME_HERE~~ """
pw = pd.read_sql_query(pw_query,con=read_engine,index_col=None)
pw = pw.values.tolist()
pw = str(pw[0])
pw = pw.lstrip("['").rstrip("]'")
#Establish connection to server
os.chdir(r"C:\tabcmd\Command Line Utility")
os.system(r'tabcmd login -s https://~~myURL~~ -u tabadmin -p {mypw}'.format(mypw = str(pw)))
#Make sure you update the below workbook, site names, and destination directory.
os.system(r'tabcmd get "~~FILE_Location~~" -f "~~Destination_DIR~~"')
私は標準のPython(Cpython)とMS SQL Serverを使用しています。
良いコール、私はスクリプトへのアクセスを保護することが重要だと思います。 Windowsサーバーのアカウントを管理するサーバー管理者からも保護する方法はありますか? –
@Rickサーバー管理者がデータにアクセスしないようにする必要があります。アカウントを管理していてもデータは管理していない可能性があります。しかし、最初に尋ねる価値があります。残念ながら、私はWindowsサーバでは一度も働いたことがないので、詳細はわかりません。 –