Обсуждение: problem creating users via pythons script

Поиск
Список
Период
Сортировка

problem creating users via pythons script

От
Timothy Smith
Дата:
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.


Re: problem creating users via pythons script

От
Volkan YAZICI
Дата:
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.

Re: problem creating users via pythons script

От
Volkan YAZICI
Дата:
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.

Re: problem creating users via pythons script

От
Timothy Smith
Дата:
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.