problem creating users via pythons script

Started by Timothy Smithover 19 years ago4 messagesgeneral
Jump to latest
#1Timothy Smith
timothy@open-networks.net

this is really newb of me but i can't manage to make a script to create
users.

cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
""",(StaffUserName,NewPassword,StaffGroup))

produces this error

ERROR: syntax error at or near "'bob.smith'" at character 13

is it because i need to double quote or something? i'm sure the answer
is stupid and i'm just too tired.

#2Volkan YAZICI
yazicivo@ttnet.net.tr
In reply to: Timothy Smith (#1)
Re: problem creating users via pythons script

On Jul 19 10:02, Timothy Smith wrote:

cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
""",(StaffUserName,NewPassword,StaffGroup))

produces this error

ERROR: syntax error at or near "'bob.smith'" at character 13

IIRC, per Python DB-API PEP, the DB adapter you use try to escape and
quote any parameter you specified. Please try to use python parameters,
that are "% (param1, param2, ...)", only for values; not for any other
place in the query string.

To summarize, you can only use parameters for values, not keys.

Regards.

#3Volkan YAZICI
yazicivo@ttnet.net.tr
In reply to: Timothy Smith (#1)
Re: problem creating users via pythons script

On Jul 19 10:40, Timothy Smith wrote:

Volkan YAZICI wrote:

On Jul 19 10:02, Timothy Smith wrote:

cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
""",(StaffUserName,NewPassword,StaffGroup))

produces this error

ERROR: syntax error at or near "'bob.smith'" at character 13

IIRC, per Python DB-API PEP, the DB adapter you use try to escape and
quote any parameter you specified. Please try to use python parameters,
that are "% (param1, param2, ...)", only for values; not for any other

Edit: �% (param1, param2, ...)� part must be replaced with
�"query_str", param1, param2, ...�

place in the query string.

To summarize, you can only use parameters for values, not keys.

...
ah ok so how do i do it :/

Just don't pass username as parameter to Cursor.execute(), for instance:

cur.execute("CREATE USER %s WITH PASSWORD %s IN GROUP %s"
% (StaffUserName, NewPassword, StaffGroup))

Regards.

P.S. Please don't forget to CC mailing list next time. Also, -interface
ml is more appropriate for these kind of questions.

#4Timothy Smith
timothy@open-networks.net
In reply to: Volkan YAZICI (#3)
Re: problem creating users via pythons script

Volkan YAZICI wrote:

On Jul 19 10:40, Timothy Smith wrote:

Volkan YAZICI wrote:

On Jul 19 10:02, Timothy Smith wrote:

cur.execute("""CREATE USER %s WITH PASSWORD %s IN GROUP %s
""",(StaffUserName,NewPassword,StaffGroup))

produces this error

ERROR: syntax error at or near "'bob.smith'" at character 13

IIRC, per Python DB-API PEP, the DB adapter you use try to escape and
quote any parameter you specified. Please try to use python parameters,
that are "% (param1, param2, ...)", only for values; not for any other

Edit: �% (param1, param2, ...)� part must be replaced with
�"query_str", param1, param2, ...�

place in the query string.

To summarize, you can only use parameters for values, not keys.

...
ah ok so how do i do it :/

Just don't pass username as parameter to Cursor.execute(), for instance:

cur.execute("CREATE USER %s WITH PASSWORD %s IN GROUP %s"
% (StaffUserName, NewPassword, StaffGroup))

Regards.

P.S. Please don't forget to CC mailing list next time. Also, -interface
ml is more appropriate for these kind of questions.

of course, i should have seen that to begin with, cheers.