[firebase-br] Usuários FB3

Léo Mees leomees em gmail.com
Qua Nov 22 17:38:42 -03 2017


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

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

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

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

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

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


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

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

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

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






*Leonardo Mees.*
Itapiranga, SC



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
>



Mais detalhes sobre a lista de discussão lista