代码之家  ›  专栏  ›  技术社区  ›  Vaibhav

需要通过pyodbc使用服务帐户解决sql连接问题的帮助吗

  •  1
  • Vaibhav  · 技术社区  · 7 年前

    当我尝试运行下面的代码时,我得到了以下错误。试着转介其他帖子,但似乎没有帮助。

    服务器主体“{Myuser}”无法在当前安全上下文下访问数据库“{database}”。(916)(SQLExecDirectW)'

    import pyodbc 
    cnxn = pyodbc.connect("Driver={SQL Server};"
                          'Server=XXXXXXX;'
                          'Port=xxxx'
                          'Username={service_account}'
                          'Password={password of service_account}'
                          'Database={detabase};'
                          'Trusted_Connection=yes;')
    
    results = cnxn.cursor()
    
    results.execute('SELECT * FROM {database}.dbo.{tablename}')
    
    for row in results:
        print(row)
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   Gord Thompson    7 年前

    如果要使用Microsoft的SQL Server ODBC驱动程序和 Trusted_Connection=yes (SQL Server Windows身份验证)则不在连接字符串中传递Windows凭据。而是以Windows用户身份运行Python应用程序。实现这一点的方法包括

    • RUNAS
    • 转移 右键单击应用程序图标,然后选择“以不同用户身份运行”。

        2
  •  0
  •   Vaibhav    7 年前

    import pyodbc 
    password = "<password>"
    conn = pyodbc.connect("Driver={SQL Server};Server=<host>;Port=<port>;UID= 
    <username>;PWD=" + password + ";Database=<dbname>;")
    cursor = conn.cursor()
    
    cursor.execute('SELECT * FROM <table>')
    
    for row in cursor:
        print(row)