10-01-2012, 11:51
Merhaba, Veri tabanı programcılığında önemli olan olaylardan biri olan loglama konusunda firebird un diğer dblere göre bazı zorlukları vardır. Gerçi bu eksiklikler için hep alternatif çözümler sundukları için çok fazla sorun olmuyor. Bunun en başında kullancı işlemleri gelmekteyti. Neyseki Firebird 2.5 versiyonu ile bu konuyada ufak bir çözüm geldi. Şu anda en azından sql ile veri tabanı kullanıcı ekleme güncelleme ve silme yapabiliyorsunuz. Fakat ufaka bir sorun var. Bu kullanıcıları db gride listelemek filan isterseniz önce küçük bir deve yavrusu bulup hendek atlatma tecrubesi kazanmanız gerekiyor. Aslında 1-10 kullanıcı ya kadar zaten önemli değil. Fakat kullanıcı sayınız 20 ise siz yetkilendirmeyi veri tabanı bazlı yapmak zorundasınız aksi taktirde bilgi güvenlini tam sağlayamasınız. Ardı arkası kesilmeyen bug lar la hangi veriyi kimin ne yaptığını anlayamazsınız. Sql yazmanızda oldukça zor olur. Bir düşünün kendiniz users diye bir tablo açtınız log tutcaksınız sql de log.user = tableuser.username deseniz bile tam istediğiniz sonuç gelmeyebilir. halbuki log.user = current_user ile işi çözebilirsiniz. Ayrıca veri tabanı role lerini kullanarak tabloda silme, eğiştirme yetkilendirmesi koymanız en garanti olanı olacaktır. Bu şekilde kullanacağınız db ler sizin başlangıç seviyesi sql progamcılığından orta seviye sql programcılığına doğru atacağınız büyük bir adım olacaktır. Eğer programcılığı severEk yapıyorsanız sizde bu işlevlerin kendiliğinden yapıldığını gördükçe çok zevk alacaksınız.
Şimdi anlatacağım yöntem deveye hendek atlatmak yerine hdeğin üzerinde bir köprü kurup deveyi onun üzerinden geçirme operasyonu olacak. Çünkü Bu hendeğin kapanması Firebird 3.0 la mümkün gibi gözüküyor.
Yapılacak işlemler
1) User tablosu hazırlanacak
2) User tablosuna 3 ayrı trigger eklenecek (insert,update,delete)
3) Bu trigerlara veri tabanına kullanıcı eklendiği firebird e kullancı ekliyen,
Kullanıcı silindiği zaman kullanıcı silen,
Kullancı paralasını güncellediği zaman paraolayı güncelliyen.
Burada dikkat edilemsi gereken önemli üç not mevcut
Her kullanıc kendi kullanıcı adını, ad ve soyad bilgisini ve şifresini günelleyebilir
Kullanıcı ekleme silme işlemleri sadece SYSDBA yetkisindeki kullanılar yapabilir.
Eklene kullancıya role atamasanız hiç bir işe yaramaz. sadece db ye bağlanır.
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
Şimdi anlatacağım yöntem deveye hendek atlatmak yerine hdeğin üzerinde bir köprü kurup deveyi onun üzerinden geçirme operasyonu olacak. Çünkü Bu hendeğin kapanması Firebird 3.0 la mümkün gibi gözüküyor.
Yapılacak işlemler
1) User tablosu hazırlanacak
2) User tablosuna 3 ayrı trigger eklenecek (insert,update,delete)
3) Bu trigerlara veri tabanına kullanıcı eklendiği firebird e kullancı ekliyen,
Kullanıcı silindiği zaman kullanıcı silen,
Kullancı paralasını güncellediği zaman paraolayı güncelliyen.
Burada dikkat edilemsi gereken önemli üç not mevcut
Her kullanıc kendi kullanıcı adını, ad ve soyad bilgisini ve şifresini günelleyebilir
Kullanıcı ekleme silme işlemleri sadece SYSDBA yetkisindeki kullanılar yapabilir.
Eklene kullancıya role atamasanız hiç bir işe yaramaz. sadece db ye bağlanır.
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt
firebird is not a supported langage
List of available langages :
php, smarty, cuesheet, div, q, mapbasic, gambas, cfdg, netrexx, css, freeswitch, z80, java5, sparql, falcon, asymptote, dot, mxml, plsql, fsharp, dcpu16, vala, basic4gl, qbasic, clojure, oobas, powershell, rails, diff, pli, freebasic, sas, stonescript, scheme, latex, f1, pascal, 6502kickass, bnf, llvm, klonecpp, povray, applescript, python, coffeescript, progress, html4strict, postgresql, lua, newlisp, lisp, unicon, cadlisp, asm, vba, oxygene, modula2, urbi, go, gnuplot, m68k, vbnet, euphoria, spark, xorg_conf, properties, lolcode, oberon2, xbasic, avisynth, yaml, vhdl, cpp, logtalk, powerbuilder, gml, perl, icon, sdlbasic, fo, ocaml-brief, mmix, providex, pic16, klonec, abap, gwbasic, nagios, pike, genero, purebasic, zxbasic, haxe, lotusformulas, awk, visualfoxpro, cobol, pcre, ocaml, apt_sources, chaiscript, autoconf, j, intercal, 68000devpac, xml, asp, lotusscript, bascomavr, genie, tcl, prolog, upc, rebol, octave, nsis, groovy, cil, mirc, smalltalk, oracle11, pycon, mpasm, dos, rsplus, c, locobasic, ini, bash, d, javascript, vedit, magiksf, thinbasic, lb, parasail, proftpd, whitespace, oz, whois, teraterm, 4cs, actionscript, csharp, apache, make, objc, boo, fortran, delphi, oorexx, idl, ecmascript, visualprolog, algol68, verilog, html5, caddcl, haskell, uscript, blitzbasic, rpmspec, java, rexx, scilab, bibtex, ldif, inno, c_loadrunner, hq9plus, perl6, erlang, gdb, kixtart, vim, oracle8, reg, dcs, typoscript, per, hicest, objeck, eiffel, mysql, actionscript3, parigp, pys60, 6502acme, lscript, epc, gettext, scala, tsql, lsl2, matlab, autoit, pf, xpp, robots, ruby, cmake, ada, systemverilog, winbatch, c_mac, jquery, text, e, io, php-brief, pixelbender, modula3, glsl, autohotkey, email, cfm, bf, sql, 6502tasm, arm, dcl, cpp-qt


