Firebird

Mensajes recientes

Páginas: [1] 2 3 ... 10
1
Conceptos y Dudas / Dudas seguridad en firebird 3
« Último mensaje por petokun noviembre 04, 2019, 08:48:31 am »
Hola buenas tardes, estoy empezando a trastear con Firebird 3.
Y tengo algunas dudas:

--------
1 -
¿Siempre tiene que existir el usuario SYSDBA en las bases de datos de seguridad?
Leyendo la documentación, entiendo que para inicializar una base de datos de seguridad nueva,
siempre hay que hacer "create user SYDBA password 'mipassword'"
¿Eso es así?

Si existe siempre el usuario SYSDBA, me permite mover el FDB a otro servidor
y entrar con el usuario (SYSDBA) y contraseña del nuevo servidor sin problemas

2 -
¿Es posible evitar que abran un FDB entrando en modo embedded?
Yo he configurado mi servidor como pone la documentación, con su base de datos de seguridad única,
sus usuarios y su sitema de autenticación.
Pero si copias ese FDB y lo llevas a otra maquina,simplemente con "isql MIDB.FDB -u SYSDBA" accedes.

--------

No se si estoy haciendo algo mal, o simplemente es que eso es así.

Si esto es así, entonces quizás lo correcto sería encriptar la base de datos y sus comunicaciones, de lo cual hay poca información.

Aquí mi configuración:

firebird.conf
AuthServer = Srp256
AuthClient = Srp256
UserManager = Srp


databases.conf
security = $(root)/PRUEBAS.SECURITY.FDB
{
   RemoteAccess = false
}

prueba =  $(root)/PRUEBA.FDB
{
    SecurityDatabase = security
}

Muchas gracias.
Un saludo.
2
Conceptos y Dudas / Re:Interactuar con 2 base de Datos sin poner en riesgo la seguridad
« Último mensaje por petokun noviembre 04, 2019, 08:22:57 am »
Lo puedes poner en un procedure y pasarle los parametros.


CREATE PROCEDURE CONSULTA_EXTERNA(
  I_ORIGEN TYPE OF D_DESCRIPCION1000,
  I_USUARIO TYPE OF D_NOMBRETABLA,
  I_PASSWORDTYPE OF D_NOMBRETABLA)
AS
DECLARE VARIABLE V_MICAMPO VARCHAR(100);
BEGIN

EXECUTE STATEMENT 'SELECT MICAMPO FROM MITABLA'
ON EXTERNAL DATA SOURCE :I_ORIGEN AS USER :I_USUARIO PASSWORD :I_PASSWORD
INTO :V_MICAMPO,

END
3
Nunca habia probado arrastrar la BD a un notepad.

Acabo de hacerlo y efectivamente se logran ver algunos datos como nombre de tablas y otras entidades
pero al menos hasta donde vi no he encontrado la contraseña de la base de datos.

A tenerlo en cuenta de todas maneras.

PD: No tengo otros motores pero ¿que pasa si hacemos lo mismo con una BD MySQL?
4
Buenas. amigos en el foro de VFP me encontre con una pregunta que hace un compañero que a su vez la veo importante colocarla aqui para que los compañeros con mas experiencias en Firebird tambien me puedan sacar de las dudas que la misma me ha traido en lo que respecta a la seguridad de la informacion en la BD.


>> viene de: https://groups.google.com/forum/?hl=es#!topic/publicesvfoxpro/pT1UZK3o_qQ

>Esteban Micossi                                   
>Hola Grupo

>Tengo una inquietud y es la siguiente:

>Las base de datos de Firebird cuando las abres con el bloc de notas o cualquier editor de textos, puedes encontrar datos que son reservados como son las claves de seguridad, datos que no debe ser vistas por cualquier persona, en concreto, no se deben ver los datos que tiene la base. Si bien es cierto esta llena de garabatos, pero algunas cosas se pueden leer facilmente, hasta el password de acceso a las bases de datos.

>Como puedo hacer para encriptar las bases de datos?

>Bueno amigos les dejo un gran abrazo, y gracias por todo.


Ustedes con mas experiencias que dicen al respecto ?
5
SQL / Re:Seperador de Miles Firebird
« Último mensaje por Walter septiembre 28, 2019, 09:17:34 am »
Aunque se puede crear una función o un stored procedure que realice esa tarea, no es del todo correcto hacerlo. Lo recomendable es que sea tu aplicación la que obtenga los datos y los formatee.

Saludos.

Walter.
6
SQL / Re:Trigger sql firebird
« Último mensaje por Walter septiembre 28, 2019, 08:20:16 am »
EXCEPTION finaliza el trigger y el control pasa al nivel superior.

Saludos.

Walter.
7
Conceptos y Dudas / Re:String >32k en BLOB
« Último mensaje por YAcosta septiembre 27, 2019, 05:13:15 pm »
Sorry amigo, no cuento con ello.
8
Conceptos y Dudas / String >32k en BLOB
« Último mensaje por Mariano Poli septiembre 27, 2019, 08:38:24 am »
Para hacer un update de un string mayor a 32k en un campo BLOB me da error -104
Entiendo que es precisamente por la longitud del string
Alguien puede facilitarme algún fragmento de código para hacer un update de un campo BLOB donde el contenido es > 32K ??
Muchas gracias
9
SQL / Trigger sql firebird
« Último mensaje por GloMabTar agosto 15, 2019, 01:16:21 pm »
Hola a todos:

Tengo una tabla Articulos con campo codigo y descripcion y tengo un trigger para que no me permita ingresar registros duplicados. 

CREATE OR ALTER TRIGGER ARTICULOS_BI0 FOR ARTICULOS
ACTIVE BEFORE INSERT POSITION 0
AS
begin
if new.descripcion in (select descripcion from articulos ) then
  exception error_articulo_descripcion;
end

Si hago un insert con varias filas y tengo articulos nuevos y repetidos me arroja el error solo del primer artículo pero no me agrega los que no están repetidos.
INSERT INTO tabla (campo1, campo2, campo3) VALUES
(v1_1, v1_2, v1_3),
(v2_1, v2_2, v2_3),
(v3_1, v3_2, v3_3); 
Si hago un instert por fila si funciona perfectamente.
 Insert Into mi_tabla(mis_campos) values(mi_datos);
 Insert Into mi_tabla(mis_campos) values(mi_datos);
 Insert Into mi_tabla(mis_campos) values(mi_datos);

No sé como lo puedo solucionar pero no puedo poner el código ni la descripción como clave primaria. tengo que hacerlo si o si a través del trigger.
10
SQL / Seperador de Miles Firebird
« Último mensaje por Claudio agosto 07, 2019, 11:19:32 am »
 En alguna oportunidad quise emitir la información de un registro tipo numeric(18,2) y concatenarlo con un campo string para poder mostrar en un showmessage, guardar en algun expediente o posterior envio de mail de informes, etc.
El problema que encontré fue que por ejemplo: a los usuario les gustaba mas
Cita
Se autorizó una póliza de Gs. 150.000.000
que
Cita
Se autorizó una póliza de Gs. 150000000

 Quisiera saber si existe alguna otra manera??? no obstante a continuación publico mi SP que hace la funcion de separar un numero en formatos.

Cita de: Claudio

create or alter procedure separador_miles (
    i_monto double precision not null = 0,
    i_sep_miles char(1) not null = '.',
    i_cant_dec integer not null = 2)
returns (
    o_monto varchar(30))
as
declare variable v_sep_decim char(1);
declare variable v_monto varchar(30);
declare variable v_s_miles varchar(18);
declare variable v_s_decim varchar(12);
declare variable v_parte_ente bigint;
declare variable i integer;
declare variable chr char(3);
declare variable v_parte_dec double precision;
begin
  /*Creado por CBB 02/08/2019*/
  if (:i_monto = 0) then
  begin
    o_monto = 0;
    suspend;
    exit;
  end
  v_sep_decim=',';
  if (:i_sep_miles=',') then v_sep_decim='.';
  /*Seccion Miles*/
  v_monto = cast(:i_monto as varchar(30));
  v_s_miles = trim(substring(:v_monto from 1 for (position('.', :v_monto) - 1)));
  v_s_miles = lpad(:v_s_miles, 18, '0');
  i = 3;
  o_monto = '';
  while (:i <= 18) do
  begin
    chr = substring(:v_s_miles from :i - 2 for 3);
    if ((cast(chr as smallint) <> 0) or (:o_monto <> ''))  then
    begin
      if (:o_monto = '') then
      begin
        chr = trim('' || cast(:chr as smallint));
      end
      o_monto = :o_monto || trim(:chr);
      if (:i < 18) then
        o_monto = :o_monto || :i_sep_miles;
    end
    i = :i + 3;
  end
  if (:o_monto = '') then
    o_monto = '0';
  /*Seccion Decimales*/
  if (:i_cant_dec > 0) then
  begin
    v_parte_ente = trunc(:i_monto, 0);
    v_parte_dec = (cast(:i_monto as double precision) - cast(:v_parte_ente as double precision));
    if (:v_parte_dec < 0) then
      v_parte_dec = :v_parte_dec * -1;
    v_s_decim = cast(:v_parte_dec as varchar(12));
    v_s_decim = trim(substring(:v_s_decim from (position('.', :v_s_decim) + 1) for 12));
    v_s_decim = substring(:v_s_decim from 1 for :i_cant_dec);
    if (cast(:v_s_decim as integer) <> 0) then
      o_monto = :o_monto || :v_sep_decim || :v_s_decim;
  end
  suspend;
end

 
Páginas: [1] 2 3 ... 10