【问题标题】:How to add my password to my pyodbc connection in python如何在python中将我的密码添加到我的pyodbc连接
【发布时间】:2022-08-19 02:17:07
【问题描述】:

我有以下代码可以连接到我的 SQL Server 数据库。我想知道在哪里/如何添加我的密码,以便它自动连接而不是询问我的密码。

server = \'myserver\'
database = \'mydatabase\'
username =\'johndoe@xyz.com\'
Authentication=\'ADI\'
driver= \'{ODBC Driver 17 for SQL Server}\'
conn = pyodbc.connect(\'DRIVER=\'+driver+
                    \';SERVER=\'+server+
                    \';PORT=1433;DATABASE=\'+database+
                    \';UID=\'+username+
                    \';AUTHENTICATION=\'+Authentication
                    )

我试过了,但没有用。

server = \'myserver\'
database = \'mydatabase\'
username =\'johndoe@xyz.com\'
Authentication=\'ADI\'
driver= \'{ODBC Driver 17 for SQL Server}\'
conn = pyodbc.connect(\'DRIVER=\'+driver+
                    \';SERVER=\'+server+
                    \';PORT=1433;DATABASE=\'+database+
                    \';UID=\'+username+
                    \';AUTHENTICATION=\'+Authentication
                    \';PWD= \'MyPassword\'
                    )

其次,是否有另一种方法可以让它读取我的密码而不将其放入代码本身?如果是这样,我很想知道这方面的任何信息。

标签: python sql-server


【解决方案1】:

我不是 100% 使用 pyodbc,但这适用于 mysqldb 和 psycopg2。

如果您能够使用环境变量,则可以在其中存储信息并在脚本中使用 os 调用它。存储后,您可以将代码更改为如下所示:

import os

server = 'myserver'
database = 'mydatabase'
username ='johndoe@xyz.com'
Authentication='ADI'
driver= '{ODBC Driver 17 for SQL Server}'
conn = pyodbc.connect(DRIVER=driver,
                    SERVER=server,
                    PORT=1433,
                    DATABASE=database,
                    UID=username,
                    AUTHENTICATION=Authentication,
                    PWD= os.environ['MYPASSWORD']
                    )

【讨论】:

  • 有没有办法可以将我当前的密码放入上面的代码中并让它像这样运行?
  • 应该能够做类似的事情;PWD='Password123') 如果其他人可以查看此脚本并且这是您自己的密码,我会说不要这样做
  • 奇怪,似乎没有工作
  • 我已经更新了我的答案,试一试
  • 我尝试了更新的答案,但没有奏效。不过,我感谢您的帮助!
【解决方案2】:

这最终为我工作:

#def get_connection():
conn = pyodbc.connect(DRIVER= '{ODBC Driver 17 for SQL Server}',
                    SERVER='ServerName',
                    DATABASE = 'DatabaseName',
                    PORT=PortNumber,
                    Trusted_Connection = 'Yes',
                    UID = 'MyUserName',
                    PWD = 'MyPass',
                    Authentication = 'ActiveDirectoryPassword'
                    )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2012-07-25
    • 2020-02-11
    • 2015-04-26
    • 1970-01-01
    • 2011-11-26
    相关资源
    最近更新 更多