On Aug 29, 7:27 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
> On Aug 29, 2007, at 1:55 PM, Jason Koelker wrote:
>
> > I am attempting to use SQLAlchemy's table reflection to access a MSSQL
> > 2k database.  However the user I can connect with only had
> > db_datareader access.  When SQLAlchemy tries to load the schema, it
> > attempts a rollback at the end, which the user does not have
> > permission to execute:
>
> > Is there any way to use reflection with a read only connection?
>
> ive never heard of a DB connection where the user doesnt have
> ROLLBACK permission (considering any transaction is local to that
> user anyway !?).  theres no "write" operations occuring during a
> reflection otherwise.
>

Chalk that up to my inability to administrate windows/mssql. ;)

> While i'll accept tickets/patches to get a "dont_issue_rollbacks"
> create_engine() flag going, most expedient in your case would be to
> allow your user at least the ability to issue a ROLLBACK.

Roger, I'll figure out how to give just that permissions to the user.

On a side note I did have to change the way SQLAlchemy was passing
the port to the pyodbc library for FreeTDS to be happy.  Instead of:

if 'port' in keys:
    connectors.append('Server=%s,%d' % (keys.get('host'),
keys.get('port')))
else:
    connectors.append('Server=%s' % keys.get('host'))

What worked for me is:

if 'port' in keys:
    connectors.append('Port=%d' % keys.get('port'))
connectors.append('Server=%s' % keys.get('host'))

I looked on technet it looks like the comma syntax is an ado/windows
thing.

Happy Hacking!

7-11


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to