[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