Connecting to SQL-Server

Grzegorz Makarewicz mak at trisoft.com.pl
Fri Oct 8 01:46:08 EDT 2004


Greg Lindstrom wrote:
> Hello-
> 
> I'm running Python 2.3 on a Windows XP box and am trying to get connected to
> an MS SQL-Server.  I have found (seemingly) conflicting methods to connect
> using the odbc module in the win32-all extensions.  I have seen both of the
> following:
> 
> db = odbc.odbc('DSN/UID/PASSWORD)
> and
> db=odbc.odbc('DSN=dsn;UID=uid;PWD=password)
> 
> I can connect when I use my computer, but when I transfer the code to a
> production box I am greeted with an error that the login is not associated
> with a trusted connection.  So which, if either, of the above methods should
> I use and what is the error about a trusted connection trying to tell me?
> 

Hi,

Trusted connection means user name and password are taken from windows 
login dialog and this information must be equal to login info stored on 
machine where sql server resides. Untrusted connection (SQL server 
authentication) requires account in sql databases - like 'sa' user.

DSN can be taken from odbc control panel, or can be constructed from 
scratch like in this snippet:

def MakeSQLServerDSN(ip, database='master', u=None, p='', port=1433):
	dsn = [
		'Driver={SQL Server}',
		'Server=%s' %ip,
		'Address=%s,%d' %(ip,port),
		'Network=DBMSSOCN',
		'Database=%s' %database,
	]
	if u is None:
		dsn.append('Trusted_Connection=yes')
	else:
		dsn.append('Uid=%s;Pwd=%s' %(u, p))
	return ';'.join(dsn)

untrusted connection:
dsn = dsnSQLServer('192.168.0.99', 'master', 'sa', 'password', 1433)

trusted connection:
dsn = dsnSQLServer('192.168.0.99', 'master')

mak



More information about the Python-list mailing list