[firebase-br] Usuários FB3

Carlos H. Cantu listas em warmboot.com.br
Qua Nov 22 22:41:02 -03 2017


Não recomendo esse procedimento, pois parece ser uma "gambiarra" com
consequências imprevistas. Conforme eu descrevi no email anterior,
acredito que o problema tenha sido usar o Legacy_UserManager com uma
configuração que força o usuário a ser criado em uma base local. Nesse
caso, o correto é usar o Srp, e não será necessário criar qualquer
tabela manualmente.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

LM> Boa Tarde. Fiz um teste aqui e percebi que as tabelas do sistema onde ficam
LM> gravados os usuários não são criados automaticamente.
LM> Eu copiei a metadata das tabelas e criei na base destino, dai deu certo.

LM> São 2 dominios,
LM> 2 tabelas
LM> e 2 views.

LM> Feito isso, pra mim funcionou, criei um novo usuário e ele ficou na base
LM> que defini no firebird.conf

LM> o script seria esse:
LM> CREATE DOMAIN PLG$ID AS INTEGER;
LM> CREATE DOMAIN PLG$PASSWD AS VARCHAR(64) CHARACTER SET OCTETS COLLATE OCTETS;

LM> CREATE TABLE PLG$SRP (
LM>     PLG$USER_NAME   SEC$USER_NAME NOT NULL /* SEC$USER_NAME = VARCHAR(31)
LM> NOT NULL */,
LM>     PLG$VERIFIER    VARCHAR(128) CHARACTER SET OCTETS NOT NULL,
LM>     PLG$SALT        VARCHAR(32) CHARACTER SET OCTETS NOT NULL,
LM>     PLG$COMMENT     BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET
LM> UNICODE_FSS,
LM>     PLG$FIRST       SEC$NAME_PART /* SEC$NAME_PART = VARCHAR(32) NOT NULL
LM> */,
LM>     PLG$MIDDLE      SEC$NAME_PART /* SEC$NAME_PART = VARCHAR(32) NOT NULL
LM> */,
LM>     PLG$LAST        SEC$NAME_PART /* SEC$NAME_PART = VARCHAR(32) NOT NULL
LM> */,
LM>     PLG$ATTRIBUTES  BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET
LM> UNICODE_FSS,
LM>     PLG$ACTIVE      BOOLEAN
LM> );

LM> ALTER TABLE PLG$SRP ADD PRIMARY KEY (PLG$USER_NAME);


LM> CREATE TABLE PLG$USERS (
LM>     PLG$USER_NAME    SEC$USER_NAME NOT NULL /* SEC$USER_NAME = VARCHAR(31)
LM> NOT NULL */,
LM>     PLG$GROUP_NAME   SEC$USER_NAME /* SEC$USER_NAME = VARCHAR(31) NOT NULL
LM> */,
LM>     PLG$UID          PLG$ID /* PLG$ID = INTEGER */,
LM>     PLG$GID          PLG$ID /* PLG$ID = INTEGER */,
LM>     PLG$PASSWD       PLG$PASSWD NOT NULL /* PLG$PASSWD = VARCHAR(64) */,
LM>     PLG$COMMENT      BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET
LM> UNICODE_FSS,
LM>     PLG$FIRST_NAME   SEC$NAME_PART /* SEC$NAME_PART = VARCHAR(32) NOT NULL
LM> */,
LM>     PLG$MIDDLE_NAME  SEC$NAME_PART /* SEC$NAME_PART = VARCHAR(32) NOT NULL
LM> */,
LM>     PLG$LAST_NAME    SEC$NAME_PART /* SEC$NAME_PART = VARCHAR(32) NOT NULL
LM> */
LM> );

LM> ALTER TABLE PLG$USERS ADD PRIMARY KEY (PLG$USER_NAME);

LM> CREATE OR ALTER VIEW PLG$SRP_VIEW(
LM>     PLG$USER_NAME,
LM>     PLG$VERIFIER,
LM>     PLG$SALT,
LM>     PLG$COMMENT,
LM>     PLG$FIRST,
LM>     PLG$MIDDLE,
LM>     PLG$LAST,
LM>     PLG$ATTRIBUTES,
LM>     PLG$ACTIVE)
LM> AS
LM> SELECT PLG$USER_NAME, PLG$VERIFIER, PLG$SALT, PLG$COMMENT,    PLG$FIRST,
LM> PLG$MIDDLE, PLG$LAST, PLG$ATTRIBUTES, PLG$ACTIVE FROM PLG$SRP WHERE
LM> CURRENT_USER = 'SYSDBA'    OR CURRENT_ROLE = 'RDB$ADMIN' OR CURRENT_USER =
LM> PLG$SRP.PLG$USER_NAME
LM> ;

LM> CREATE OR ALTER VIEW PLG$VIEW_USERS(
LM>     PLG$USER_NAME,
LM>     PLG$GROUP_NAME,
LM>     PLG$UID,
LM>     PLG$GID,
LM>     PLG$PASSWD,
LM>     PLG$COMMENT,
LM>     PLG$FIRST_NAME,
LM>     PLG$MIDDLE_NAME,
LM>     PLG$LAST_NAME)
LM> AS
LM> SELECT PLG$USER_NAME, PLG$GROUP_NAME, PLG$UID, PLG$GID, PLG$PASSWD,
LM>         PLG$COMMENT, PLG$FIRST_NAME, PLG$MIDDLE_NAME, PLG$LAST_NAME
LM>     FROM PLG$USERS
LM>     WHERE CURRENT_USER = 'SYSDBA'
LM>        OR CURRENT_ROLE = 'RDB$ADMIN'
LM>        OR CURRENT_USER = PLG$USERS.PLG$USER_NAME
LM> ;






LM> *Leonardo Mees.*
LM> Itapiranga, SC



LM> Em 22 de novembro de 2017 14:52, Renan Rogowski Pozzo <renanrpozzo em gmail.com
>> escreveu:

>> Boa tarde.
>> Estou tendo uma dificuldade ao criar um usuário no FB 3 e gostaria da ajuda
>> dos colegas.
>>
>> Tenho meu "*firebird.conf*" configurado dessa forma:
>> AuthServer = Srp, Win_Sspi, Legacy_Auth
>> AuthClient = Srp, Win_Sspi, Legacy_Auth
>> UserManager = Srp, Legacy_UserManager
>>
>> No "*databases.conf*" está assim:
>> base_db = C:\Program Files\Base\BASE.FDB
>> {
>> SecurityDatabase = base_db
>> }
>>
>> Ou seja, quero salvar os usuários na própria base.
>>
>> *Versão do FB* instalada: 3.0.2.32703 - x64
>>
>> Criei o SYSDBA pelo "isql" e funcionou. Porém quando tentei criar um novo
>> usuário passando o PLUGIN Legacy_UserManager recebi um retorno de erro:
>>
>> *SQL>* create user teste password 'teste' using plugin Legacy_UserManager;
>> Statement failed, SQLSTATE = 42S02
>> add record error
>> -table PLG$VIEW_USERS is not defined
>>
>> Efetuei o mesmo procedimento na base de usuários padrão (security3.fdb) e
>> funcionou.
>>
>> Alguém já passou por isso? Ou tem alguma sugestão do que eu posso fazer?
>>
>> Obrigado.
>> Renan Rogowski Pozzo
>>
>> *"E a paz de Deus, que excede todo o entendimento, guardará os vossos
>> corações e os vossos pensamentos em Cristo Jesus." Filipenses 4.7*
>> ______________________________________________
>> 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
>>
LM> ______________________________________________
LM> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
LM> Para saber como gerenciar/excluir seu cadastro na lista, use:
LM> http://www.firebase.com.br/fb/artigo.php?id=1107
LM> Para consultar mensagens antigas:
LM> http://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista