[firebase-br] Alguem ai usa Python com FB?

Murilo Furquim murilofurquim em gmail.com
Seg Dez 9 16:12:22 -03 2019


Não é só a falta das aspas simples? Na documentação fala que a senha
tem aspas. https://firebirdsql.org/refdocs/langrefupd25-security-sql-user-mgmt.html

Tente o seguinte:
sql_change_password = "ALTER USER %s PASSWORD '%s';"

Em seg., 9 de dez. de 2019 às 15:18, Gladiston Santana
<gladiston em vidy.com.br> escreveu:
>
> Aproveitando o momento, sabe porque não tá funcionando essa linha destacada:
>
> def fdb_reset_all_password(con_dsn, con_user='SYSDBA',
> con_password='masterkey', set_password='masterkey',
> result_value=False):
>     print('Modificando a senha de todos os usuarios em', con_dsn,
> 'para', set_password)
>     try:
>         con = fdb.connect(dsn=con_dsn, user=con_user, password=con_password)
>         print('Conexoes estabelecidas com este servidor:')
>         print(con.db_info(fdb.isc_info_user_names))
>         cur = con.cursor()
>         select =\
>             'SELECT a.SEC$USER_NAME FROM SEC$USERS a\
>              WHERE a.SEC$USER_NAME NOT IN(\
>                SELECT SEC$USER_NAME FROM SEC$USERS\
>                WHERE SEC$USER_NAME LIKE \'SYSDBA\') \
>             AND a.SEC$USER_NAME NOT IN (\
>                SELECT SEC$USER_NAME FROM SEC$USERS\
>                WHERE SEC$USER_NAME LIKE \'RDB$%\')\
>             AND a.SEC$USER_NAME NOT IN (\
>               SELECT SEC$USER_NAME FROM SEC$USERS\
>               WHERE SEC$USER_NAME LIKE \'SYS_%\')\
>             AND a.SEC$USER_NAME NOT IN (\
>               SELECT SEC$USER_NAME FROM SEC$USERS\
>               WHERE SEC$USER_NAME LIKE \'REPL_%\')'
>         print(select)
>         cur.execute(select)
>         for (db_username) in cur:
>             sql_change_password = 'ALTER USER %s PASSWORD %s;'
>             con.execute_immediate(sql_change_password, (db_username,
> set_password)) <---- NECAS DE CATIPIRIBA
>             print('Usuario:', db_username, 'teve sua senha resetada
> para', set_password)
>         con.commit()
>         print('Sucesso ao resetar senhas em', con_dsn, 'para', set_password)
>         result_value = True
>
>     except fdb.Error as er:
>         print(str(er))
>         result_value = False
>     except fdb.ProgrammingError as er:
>         print(str(er))
>         result_value = False
>
>     except fdb.DatabaseError as dberr:
>        print(str(dberr))
>        result_value = False
>     except:
>         print('Falha ao aplicar senha em', con_dsn, 'para', set_password)
>     return result_value
>
> A intenção do trecho no codigo é estabelecer uma senha para todos os
> usuarios, enquanto o select funciona, o 'alter user' não.
>
>
> Em seg., 9 de dez. de 2019 às 13:59, Murilo Furquim <murilofurquim em gmail.com>
> escreveu:
>
> > Opa, que bom que funcionou. Até colei aqui outro exemplo que também
> > funcionou, só com um except.
> >
> > https://pastebin.com/JPYBgW4x
> >
> > Em seg., 9 de dez. de 2019 às 13:52, Gladiston Santana
> > <gladiston em vidy.com.br> escreveu:
> > >
> > > Muito obrigado, identifiquei o problema com o except
> > > na hora que voce colou achei que era para colar um ou outro, pensei no
> > > "delphi" nesta hora. Seu codigo não falha se coloco extamente os dois
> > > except´s.
> > >
> > >
> > > Em seg., 9 de dez. de 2019 às 13:44, Gladiston Santana <
> > > gladiston em vidy.com.br> escreveu:
> > >
> > > > Descobri o que houve.
> > > >
> > > > O problema está em o python não achar a 'fbclient.dll', eu usei o
> > instalar
> > > > do firebird 64 e pedi para instalar apenas o cliente, mas parece que
> > ele
> > > > não colocou o fbclient em c:\windows\system, talvez por considerar que
> > > > havia uma versão 32bits em c:\windows\syswol64.
> > > >
> > > > Agora meu script conecta.
> > > > Ainda tô tentando entender porque o except abaixo não funcionou:
> > > >     except fdb.ProgrammingError as er:
> > > >         print(str(er))
> > > >         return False
> > > >
> > > >     except fdb.DatabaseError as dberr:
> > > >        print(str(dberr))
> > > >        return False
> > > > Pois seria muito util diagnosticar erros do banco de  dados dessa
> > forma.
> > > >
> > > > Agora o próximo passo será encontrar a função para restaurar base de
> > dados
> > > > nativamente.
> > > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> >
>
>
> --
> A Vidy possui um Sistema de Gestão da Qualidade estruturado e com
> Certificação ISO 9001 há mais de 10 anos, mantendo seu foco na Qualidade e
> na Melhoria Continua.
>
> Em março de2018 migramos com sucesso para a nova versão da ISO 9001.
>
> Somos a única Empresa Brasileira de Engenharia de Laboratórios com
> certificação com o Escopo Completo; desde Projetos, Engenharia, Construção,
> Fabricação e Instalação de Laboratórios.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html




Mais detalhes sobre a lista de discussão lista