[firebase-br] Security Level on Firebird 2.1.2 (RESOLVIDO)
Welkson Renny de Medeiros
welkson em gmail.com
Sex Abr 17 12:18:37 -03 2009
Welkson Renny - Cruzeta escreveu:
> Senhores,
>
> Migrei hoje do Firebird 2.1.1 para o 2.1.2:
> http://www.sinatica.com/blog/br/index.php/2009/04/novidades-e-correcoes-no-firebird-212
> (créditos para o Douglas Tosi que participa da lista =)
>
> Meu sistema funciona assim... até a tela de login estou como usuário
> SYSDBA... o usuário informa o login do mesmo e password, eu acesso
> minha tabela de senhas, se estiver tudo ok eu acesso um segundo
> IBODatabase logado com um usuário de BANCO para aquele login
> (diferente do SYSDBA, para facilitar LOG via triggers).
>
> Na versão 2.1.1 tudo ok, na 2.1.2 aparece a seguinte mensagem:
> "You must be either SYSDBA or owner of database"
>
> Já dei uma googleada... ensinaram que eu posso fazer um RESTORE com
> outro usuário e teoricamente funcionaria... a bronca é que tenho
> DEZENAS de usuários cadastrados no security2.fdb, como vou fazer para
> todos eles serem OWNER?
>
> Em outra dica que encontrei, sugeriram alterar o SECURITY LEVEL do
> banco... mas no conf não encontrei isso...
>
> Dicas?
>
> Welkson Renny
> Focus Team
>
>
Encontrei a solução... lendo o Release Notes na página 26 tem a seguinte
mensagem:
Important Note for Developers and Users of Data Access Drivers and Tools
This change will affect any of the listed DPB parameters that have been
explicitly set, either by including
them in the DPB implementation by default property values or by enabling
them in tools and applications
that access databases as ordinary users. For example, a Delphi
application that included 'RESERVE PAGE
SPACE=TRUE' and 'FORCED WRITES=TRUE' in its database Params property,
which caused no problems
when the application connected to Firebird 1.x, 2.0.x or 2.1.0/2.1.1,
now rejects a connection by a non-SYSDBA
user with ISC ERROR CODE 335544788, “Unable to perform operation. You
must be either SYSDBA or
owner of the database.”
Ou seja, se o seu componente de conexão ao banco (eu uso IBODatabase)
passar o parâmetro FORCED WRITES ou RESERVE PAGE SPACE logado com um
usuário NÃO-SYSDBA a conexão será rejeitada.
Solução?
Alterei o parâmetro "Forced Writes" e "Reserve Page Space" para
"dpbDefault".
Forte abraço a todos.
Welkson Renny
Focus Team
Mais detalhes sobre a lista de discussão lista