Rules und crypt Problem

This is a multi-part message in MIME format.
--------------030202090703000505040808
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Hallo zusammen,<br>
<br>
ich hab ein kleines Problem (oder ich seh den Wald vor lauter B=C3=A4umen
nicht mehr...) mit der crypt Funktion, bzw. ihrem Gebrauch in Rules.<br>
<br>
Wenn ich eine Tabelle tt habe und einen regul=C3=A4ren Insert mache,
funktioniert auch der Gebrauch von crypt:<br>
<br>
<font face=3D"Courier New, Courier, monospace">=3D> create table tt (u=
n
varchar(10), pw varchar(128));<br>
CREATE TABLE<br>
=3D> insert into tt values ('me', crypt('pass',gen_salt('bf')));<br>
INSERT 0 1<br>
mitarbeiterideen=3D> select * from tt;<br>
=C2=A0un |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A 0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2 =A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pw<br>
----+------------------------------------------------------- -------<br>
=C2=A0me | $2a$06$RHCI.brrz/UedPhDokDgTumljCvbG1QBofLWNaQfkaii6KzLFAO0y<b=
r>
(1 Zeile)</font><br>
<br>
<br>
Funktioniert. Aber ich m=C3=B6chte jetzt gerne, da=C3=9F das pw Feld per =
crypt
verschl=C3=BCsselt wird, auch wenn die Applikation nur plain =C3=BCbergib=
t, also<br>
nur 'me' und 'pass'. Also dachte ich, ich kann das mit einer Regel
l=C3=B6sen:<br>
<br>
<font face=3D"Courier New, Courier, monospace">=3D> CREATE RULE pw_tt =
AS
ON INSERT TO tt<br>
-> DO INSTEAD<br>
-> INSERT INTO tt VALUES (NEW.un, crypt(NEW.pw, gen_salt('bf')));<br>
CREATE RULE<br>
<br>
=3D> insert into tt values ('me', 'pass');<br>
FEHLER:=C2=A0 unendliche Rekursion entdeckt in Regeln f=C3=BCr Relation =C2=
=BBtt=C2=AB</font><br>
<br>
<br>
Kann mir bitte jemand erkl=C3=A4ren, wo hier der Fehler liegt? Ich schein
betriebsblind zu sein, aber ich wei=C3=9F nicht, woher er die Rekursionen
holt...<br>
<br>
Vielen Dank und Gru=C3=9F<br>
=C2=A0 Oliver<br>
<br>
<div class=3D"moz-signature"><br>
</div>
</body>
</html>

--------------030202090703000505040808
Content-Type: text/x-vcard; charset=utf-8;
name="itsok.vcf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="itsok.vcf"

YmVnaW46dmNhcmQNCmZuOk9saXZlciBLYW16b2wNCm46S2Ftem9sO09saXZl
cg0Kb3JnOk9saXZlciBLYW16b2w7aXRzIG9rIDo6IGl0IHNlcnZpY2Ugb2xp
dmVyIGthbXpvbA0KYWRyOjs7SGVpbGlnZW5iYXVtc3RyLiAxNTtEdWlzYnVy
Zzs7NDcyNDk7RA0KZW1haWw7aW50ZXJuZXQ6aXRzb2tAb2thbXpvbC5kZQ0K
dGVsO3dvcms6KzQ5IDE1MSAyMjYgMzI0IDg0DQp4LW1vemlsbGEtaHRtbDpU
UlVFDQp2ZXJzaW9uOjIuMQ0KZW5kOnZjYXJkDQoNCg==

--------------030202090703000505040808
Content-Type: text/plain
Content-Disposition: inline
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable


--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

--------------030202090703000505040808--
Oliver Kamzol [ Sa, 25 Oktober 2008 11:59 ] [ ID #1974800 ]

Re: Rules und crypt Problem

Oliver Kamzol <itsok [at] okamzol.de> schrieb:
> Funktioniert. Aber ich möchte jetzt gerne, daß das pw Feld per cryp=
t
> verschlüsselt wird, auch wenn die Applikation nur plain übergibt, a=
lso
> nur 'me' und 'pass'. Also dachte ich, ich kann das mit einer Regel lö=
sen:
>
> =3D> CREATE RULE pw_tt AS ON INSERT TO tt
> -> DO INSTEAD
> -> INSERT INTO tt VALUES (NEW.un, crypt(NEW.pw, gen_salt('bf')));
> CREATE RULE
>
> =3D> insert into tt values ('me', 'pass');
> FEHLER:=A0 unendliche Rekursion entdeckt in Regeln für Relation =BBtt=
=AB
>
>
> Kann mir bitte jemand erklären, wo hier der Fehler liegt? Ich schein
> betriebsblind zu sein, aber ich weiß nicht, woher er die Rekursionen =
holt...

Die RULE macht bei insert ein instead insert. Die Rule für das Insert
ist wieder ein... richtig, insert.

Ich würde das eher als TRIGGER machen.




Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082=B0, E 13.56889=
=B0

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
Andreas Kretschmer [ So, 26 Oktober 2008 16:54 ] [ ID #1974801 ]

Re: Rules und crypt Problem

am Sat, dem 25.10.2008, um 11:59:08 +0200 mailte Oliver Kamzol folgendes=
:
> Hallo zusammen,
>
> ich hab ein kleines Problem (oder ich seh den Wald vor lauter B=C3=A4um=
en nicht
> mehr...) mit der crypt Funktion, bzw. ihrem Gebrauch in Rules.

Die Liste hat mal wieder ein Zeitloch, ich weiß, daß Du noch mal
geantwortet hast und es mit einem TRIGGER versucht hast, und wieder eine
Rekursion. (die Liste wird diese Mail sicher auch noch sehen...)

In Deiner Triggerfuntion rufst Du INSERT auf. Nun rate mal, was
passiert, wenn ein INSERT einen TRIGGER auslöst, der wieder ein INSERT
macht? Nein, so geht das nicht.

Was ich meinte:

In Deiner Triggerfunktion prüfen, ob NEW.pw ein bereits gecryptetes
Passwort enthält (Stringlänge prüfen oder so.). Falls nein, die Var=
iable
NEW.pw passend behandeln. Das ganze als ein before insert - Trigger.


Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
andreas.kretschmer [ Mo, 27 Oktober 2008 07:15 ] [ ID #1974908 ]

Re: Rules und crypt Problem

This is a multi-part message in MIME format.
--------------090804010009030907040701
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Andreas Kretschmer schrieb:
<blockquote cite="mid:20081026155422.GA7344 [at] tux" type="cite">
<pre wrap="">Oliver Kamzol <a class="moz-txt-link-rfc2396E" href="mailto:itsok [at] okamzol.de"><itsok [at] okamzol.de></a> schrieb:
</pre>
<blockquote type="cite">
<pre wrap="">Funktioniert. Aber ich möchte jetzt gerne, daß das pw Feld per crypt
verschlüsselt wird, auch wenn die Applikation nur plain übergibt, also
nur 'me' und 'pass'. Also dachte ich, ich kann das mit einer Regel lösen:

=> CREATE RULE pw_tt AS ON INSERT TO tt
-> DO INSTEAD
-> INSERT INTO tt VALUES (NEW.un, crypt(NEW.pw, gen_salt('bf')));
CREATE RULE

=> insert into tt values ('me', 'pass');
FEHLER:  unendliche Rekursion entdeckt in Regeln für Relation »tt«


Kann mir bitte jemand erklären, wo hier der Fehler liegt? Ich schein
betriebsblind zu sein, aber ich weiß nicht, woher er die Rekursionen holt...
</pre>
</blockquote>
<pre wrap=""><!---->
Die RULE macht bei insert ein instead insert. Die Rule für das Insert
ist wieder ein... richtig, insert.

Ich würde das eher als TRIGGER machen.
</pre>
</blockquote>
Das hab ich auch schon versucht, leider bekomme ich hierbei auch einen
Fehler...<br>
Etwas anders gestaltet, aber doch ähnlich.<br>
<br>
<font face="Courier New, Courier, monospace">=>CREATE OR REPLACE
FUNCTION makePwd() returns trigger AS<br>
$> $$<br>
$> BEGIN<br>
$>  IF TG_OP = 'INSERT' THEN<br>
$>  INSERT INTO tt VALUES (NEW.un, crypt(NEW.pw, gen_salt('bf')));<br>
$> RETURN NEW;<br>
$>  END IF;<br>
$> END;<br>
$> $$ LANGUAGE 'plpgsql';<br>
CREATE FUNCTION<br>
=> create trigger pwdtest before insert on tt for each row execute
procedure makePwd();<br>
CREATE TRIGGER<br>
=> insert into tt values ('me', 'pass');<br>
-- hier passiert erstmal einige Sekunden nichts und dann:<br>
FEHLER:  Grenze für Stacktiefe überschritten<br>
TIP:  Erhöhen Sie den Konfigurationsparameter »max_stack_depth«,
nachdem Sie sichergestellt haben, dass die Stacktiefenbegrenzung Ihrer
Plattform ausreichend ist.<br>
KONTEXT:  SQL-Anweisung »INSERT INTO tt VALUES ( $1 , crypt( $2 ,
gen_salt('bf')))«<br>
PL/pgSQL function "makepwd" line 3 at SQL statement<br>
SQL-Anweisung »INSERT INTO tt VALUES ( $1 , crypt( $2 ,
gen_salt('bf')))«<br>
PL/pgSQL function "makepwd" line 3 at SQL statement<br>
SQL-Anweisung »INSERT INTO tt VALUES ( $1 , crypt( $2 ,
gen_salt('bf')))«<br>
[...] </font><br>
das ganze dann zig Mal.<br>
<br>
Ich verstehe nicht, warum das mit der Stacktiefe zu tun hat - die
übrigens auf dem Default steht.<br>
<br>
Gruß & Danke<br>
 Oliver<br>
<br>
<br>
<blockquote cite="mid:20081026155422.GA7344 [at] tux" type="cite">
<pre wrap="">


Andreas
</pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
<font
style="font-family: verdana,sans-serif; font-weight: bold; font-size: 8px;">its
ok :: it service oliver kamzol</font><br>
<p
style="font-family: verdana,sans-serif; font-weight: normal; font-size: 8px;">
Oliver Kamzol<br>
Heiligenbaumstr. 15<br>
47249 Duisburg<br>
email: <a class="moz-txt-link-abbreviated" href="mailto:itsok [at] okamzol.de">itsok [at] okamzol.de</a><br>
mobile: +49 151 226 324 84
</p>
</div>
</body>
</html>

--------------090804010009030907040701
Content-Type: text/x-vcard; charset=utf-8;
name="itsok.vcf"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="itsok.vcf"

begin:vcard
fn:Oliver Kamzol
n:Kamzol;Oliver
org:Oliver Kamzol;its ok :: it service oliver kamzol
adr:;;Heiligenbaumstr. 15;Duisburg;;47249;D
email;internet:itsok [at] okamzol.de
tel;work:+49 151 226 324 84
x-mozilla-html:TRUE
version:2.1
end:vcard


--------------090804010009030907040701
Content-Type: text/plain
Content-Disposition: inline
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable


--
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein [at] postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

--------------090804010009030907040701--
Oliver Kamzol [ So, 26 Oktober 2008 23:02 ] [ ID #1974909 ]

Re: Rules und crypt Problem

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content=3D"text/html;charset=3DISO-8859-15"
http-equiv=3D"Content-Type">
<title></title>
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Hi Andreas,<br>
<br>
Danke! Ich hab den Wald vor lauter Bäumen tatsächlich nicht mehr
gesehen ;-)<br>
Hab den Trigger jetzt umgebaut und bin mit dem Ergebnis sehr zufrieden.<b=
r>
<br>
Danke und Gruß<br>
=A0Oliver<br>
<br>
<br>
A. Kretschmer schrieb:
<blockquote cite=3D"mid:20081027061500.GB28041 [at] a-kretschmer.de"
type=3D"cite">
<pre wrap=3D"">am Sat, dem 25.10.2008, um 11:59:08 +0200 mailte Oliver=
Kamzol folgendes:
</pre>
<blockquote type=3D"cite">
<pre wrap=3D"">Hallo zusammen,

ich hab ein kleines Problem (oder ich seh den Wald vor lauter B=C3=A4umen=
nicht
mehr...) mit der crypt Funktion, bzw. ihrem Gebrauch in Rules.
</pre>
</blockquote>
<pre wrap=3D""><!---->
Die Liste hat mal wieder ein Zeitloch, ich weiß, daß Du noch mal
geantwortet hast und es mit einem TRIGGER versucht hast, und wieder eine
Rekursion. (die Liste wird diese Mail sicher auch noch sehen...)

In Deiner Triggerfuntion rufst Du INSERT auf. Nun rate mal, was
passiert, wenn ein INSERT einen TRIGGER auslöst, der wieder ein INSERT
macht? Nein, so geht das nicht.

Was ich meinte:

In Deiner Triggerfunktion prüfen, ob NEW.pw ein bereits gecryptetes
Passwort enthält (Stringlänge prüfen oder so.). Falls nein, die Var=
iable
NEW.pw passend behandeln. Das ganze als ein before insert - Trigger.


Andreas
</pre>
</blockquote>
<br>
</body>
</html>
mailings [ Mo, 27 Oktober 2008 14:35 ] [ ID #1974911 ]
Datenbanken » gmane.comp.db.postgresql.german » Rules und crypt Problem

Vorheriges Thema: Wie überprüfe ich ein Backup Prozess mit pg_dump
Nächstes Thema: == WöchentlicherPostgreSQL Newsletter - 26.Oktober 2008