Re: multiple database users

[prev] [thread] [next] [Date index for 2005/06/06]

From: Hartmaier Alexander
Subject: Re: multiple database users
Date: 11:51 on 06 Jun 2005
This is a multi-part message in MIME format.

------=_NextPart_000_04B3_01C56A9E.D52620F0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I like Scott's approach at
http://wiki.class-dbi.com/index.cgi?UsingMultipleDatabases
What I don't get is how to set which of the defined db connections to =
use:

#snip#
sub db_Main {
   my $connection_key =3D "TESTDB_B";
#snip#

The used db connection is set again in db_Main and not when loading the =
CDBI
module...

-Alex


-----Urspr=FCngliche Nachricht-----
Von: William Ross [mailto:will@xxxxxxx.xxx]=20
Gesendet: Montag, 6. Juni 2005 13:40
An: Hartmaier Alexander
Cc: cdbi-talk@xxxxxx.xxxxx.xxx
Betreff: Re: multiple database users

On 6 Jun 2005, at 11:29, Hartmaier Alexander wrote:

> And where can/should I override the default db_Main?
> I have no idea how to do that...

It's just a Class::DBI method. The only confusing thing is that it =20
doesn't exist until Ima::DBI places it into Class::DBI's namespace. =20
You override it in the usual way, by putting a similar method in your =20
base class.

There's a popular example in Perrin's http://wiki.class-dbi.com/=20
index.cgi?UsingWithModPerl that might help, or you could start with =20
something simple like this (untested and possibly silly):

my $handles =3D {};
my $db_options =3D {
     RaiseError         =3D> 1,
     AutoCommit         =3D> 0,
     FetchHashKeyName   =3D> 'NAME_lc',
     ShowErrorStatement =3D> 1,
     ChopBlanks         =3D> 1,
     RootClass          =3D> 'DBIx::ContextualFetch'
};

sub db_Main {
     my $dbh;
     return $handles->{ $ENV{USER} } ||=3D DBI->connect_cached(
         $dsn, $db_user, $db_pass, $db_options
      );
}

... where $dsn, $db_user and $db_pass come from your config and =20
presumably depend on the user.

with this in place, you can remove the set_db calls from your base =20
class or data classes, as it will be ignored.

will





>
> -Alex
>
>
> -----Urspr=FCngliche Nachricht-----
> Von: William Ross [mailto:will@xxxxxxx.xxx]
> Gesendet: Freitag, 3. Juni 2005 10:43
> An: Hartmaier Alexander
> Cc: cdbi-talk@xxxxxx.xxxxx.xxx
> Betreff: Re: multiple database users
>
> On 2 Jun 2005, at 18:43, Hartmaier Alexander wrote:
>
>
>> Hi list!
>>
>> I just found out that one of my scripts is using the wrong db user
>> to access my database.
>>
>> I created different users with different access rights in oracle I
>> used before CDBI.
>>
>> The connection info is stored in the base class so a different user
>> means a different db connection regardless which parameter is
>> different.
>>
>> This topic was already on the list but for different databases but
>> I think it=92s the same problem
>>
> It is the same problem. If you want cdbi to use a different database
> handle under different circumstances, you need a sub db_Main() in
> your base class (or wherever) that selects the handle according to
> your criteria. That sub needs to return an appropriate
> DBIx::ContextualFetch object, btw, and should be as quick as possible
> as it's called very frequently.
>
>
> will
>


------=_NextPart_000_04B3_01C56A9E.D52620F0
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIISkjCCApow
ggIDoAMCAQICASQwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE0RldXRz
Y2hlIFRlbGVrb20gQUcxHzAdBgNVBAsTFlQtVGVsZVNlYyBUcnVzdCBDZW50ZXIxIzAhBgNVBAMT
GkRldXRzY2hlIFRlbGVrb20gUm9vdCBDQSAxMB4XDTk5MDcwOTExMzQwMFoXDTE5MDcwOTIzNTkw
MFowcTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE0RldXRzY2hlIFRlbGVrb20gQUcxHzAdBgNVBAsT
FlQtVGVsZVNlYyBUcnVzdCBDZW50ZXIxIzAhBgNVBAMTGkRldXRzY2hlIFRlbGVrb20gUm9vdCBD
QSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ3ZsMoBdERA+vIUBzZ1bwPmloEbrZN/KB
rsMkrGmhzfymGFVW/4ufMsHb53gsOdtggUGl79PNgI0YPOJSDAuf92Se5aDwuGFi9L/go9pYK/0V
BGu9Op58nfI92OSVw+xOwvFlqwxL7EeCW+LhUHXY9mG0GFztM6BLHoP7T4S8eQIDAQABo0IwQDAd
BgNVHQ4EFgQUFDHif5zKEpX78XAg200oE3FCYcYwDwYDVR0TBAgwBgEB/wIBBTAOBgNVHQ8BAf8E
BAMCAQYwDQYJKoZIhvcNAQEEBQADgYEAnR0Q+pPIHWQgRV6cbwVto1J/p6iHZbNnmjaGeHIWFf/X
RXMoAYaInZHq3tYpCww+o5l0QAzM7BDgZPxwtro5EifyXgBQtQvWSt+pb/SzCSiA/NIexOxwRoVM
3kWwAZU4rBafRkruLcu9y2WxOuWmSwRLDjP/HHvIhIRH4VpkRkowggTdMIIERqADAgECAgIAnTAN
BgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBB
RzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVs
ZWtvbSBSb290IENBIDEwHhcNMDQwNjI0MDUzODAwWhcNMTAwNjI0MjM1OTAwWjB6MQswCQYDVQQG
EwJERTElMCMGA1UEChMcVC1TeXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDElMCMGA1UECxMcVC1T
eXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDEdMBsGA1UEAxMUVC1TeXN0ZW1zIENvbXBhbnkgQ0Ew
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+ooSiyo46KcYIAAJzfHHnXVHzuFUtMTiG
n5+TIKzga38S/sRAj6vPSn1AcoUEW1LZ+CFvdNJgmUouVyZ1siE1DJNH1N1URl5CunNTNMvAFDxj
Cc1GQ6QXpxi7W4cTkF3Cj95eUb8Ux4efTVpeaoV2/Zazw3hVLGRnkcBTVdkED6fjn/UDmDc8i9Mc
Sg4Yr+n4DkZ4mCz3jVZZeIScnI2YzDeNKDRajnygJlve5hY23mqaBLscDzFFntGe6yswp7D6pSDa
108/8a8HySUKGZ1weC3BDgaMLjPz4pcXjtkvleyxWH5BIQo1tlbtXwigqJN+zhxdbsi8b5IY6ko5
sp+jAgMBAAGjggH1MIIB8TB1BgNVHSAEbjBsMGoGCSsGAQQBvUcNEDBdMFsGCCsGAQUFBwIBFk9o
dHRwOi8va3J5cFRTSS50ZWxlc2VjLmRlL2NnaS1iaW4vY2FzZXJ2aWNlL2tyeXBUU0kvRG93bmxv
YWRQREYva3J5cFRTSS1DUFMucGRmMIIBEgYDVR0fBIIBCTCCAQUwXqBcoFqGWGh0dHA6Ly9rcnlw
VFNJLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9hZl9Eb3dubG9hZEFSTC5j
cmw/LWNybF9mb3JtYXQ9WF81MDkwgaKggZ+ggZyGgZlsZGFwOi8vbGRhcC1rcnlwVFNJLnRlbGVz
ZWMuZGUvY249RGV1dHNjaGUlMjBUZWxla29tJTIwUm9vdCUyMENBJTIwMSxvdT1ULVRlbGVTZWMl
MjBUcnVzdCUyMENlbnRlcixvPURldXRzY2hlJTIwVGVsZWtvbSUyMEFHLGM9REU/QXV0aG9yaXR5
UmV2b2NhdGlvbkxpc3QwHQYDVR0OBBYEFGKQKoiCJcPJVuPjvloUpjQ+jwYvMB8GA1UdIwQYMBaA
FBQx4n+cyhKV+/FwINtNKBNxQmHGMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgED
MA0GCSqGSIb3DQEBBQUAA4GBAK2TIG0uoRyvzq/3CUalvZOFSnUz6oDrX5fa6r1Fdh8ODa0zOCzr
qbLQRLZVErwH9qxuC6qxby57Ek1qpwI8TuuhFnMA9ISrkEUJjgxAIe6at2NdQ6bowZG9McwGmcsU
yiCwyipt70V3VHFW2cVHmMsEitGx5PsgfhUiGi+Ufst1MIIFhTCCBG2gAwIBAgICRxYwDQYJKoZI
hvcNAQEFBQAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFs
IEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQt
U3lzdGVtcyBDb21wYW55IENBMB4XDTA1MDQxMTA5MjgyNFoXDTA4MDQxMTIzNTkwMFowgdgxCzAJ
BgNVBAYTAkFUMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMRAwDgYDVQQL
EwdhdXN0cmlhMSEwHwYDVQQLExhDRUUtQVQtVklFLUVNLTAxLmF1c3RyaWExGjAYBgNVBAsTEVQt
U3lzdGVtcyBBdXN0cmlhMR8wHQYDVQQDExZIYXJ0bWFpZXIgQWxleGFuZGVyIDAxMTAwLgYJKoZI
hvcNAQkBFiFBbGV4YW5kZXIuSGFydG1haWVyQHQtc3lzdGVtcy5jb20wgZ8wDQYJKoZIhvcNAQEB
BQADgY0AMIGJAoGBANo+1hFHTw2SivsA2RxpYFAwSULIFXhagYoguyrIefoxYL/SYfIUoKFejDMg
bX/J4ZSkfdta2rH4TapDDpnFJhkRTsJ4yi8i03PtfsqJmtzqFedRsQta0t0YWBMskNhlXveT1Wqh
jjDJsV8c+dxf1KZltYnPMvpJU46Gu0kKTa1tAgMBAAGjggI4MIICNDAfBgNVHSMEGDAWgBRikCqI
giXDyVbj475aFKY0Po8GLzAOBgNVHQ8BAf8EBAMCBSAwHQYDVR0OBBYEFDWHeGOuGCPJFrZOxI+l
io66rv6wMHUGA1UdIARuMGwwagYJKwYBBAG9Rw0QMF0wWwYIKwYBBQUHAgEWT2h0dHA6Ly9rcnlw
dHNpLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9Eb3dubG9hZFBERi9rcnlw
VFNJLUNQUy5wZGYwTgYDVR0RBEcwRYEgQWxleGFuZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuYXSB
IUFsZXhhbmRlci5IYXJ0bWFpZXJAdC1zeXN0ZW1zLmNvbTCCARkGA1UdHwSCARAwggEMMF6gXKBa
hlhodHRwOi8va3J5cHRzaS50ZWxlc2VjLmRlL2NnaS1iaW4vY2FzZXJ2aWNlL2tyeXBUU0kvYWZf
RG93bmxvYWRDUkwuY3JsPy1jcmxfZm9ybWF0PVhfNTA5MIGpoIGmoIGjhoGgbGRhcDovL2xkYXAt
a3J5cFRTSS50ZWxlc2VjLmRlL2NuPVQtU3lzdGVtcyUyMENvbXBhbnklMjBDQSxvdT1ULVN5c3Rl
bXMlMjBJbnRlcm5hdGlvbmFsJTIwR21iSCxvPVQtU3lzdGVtcyUyMEludGVybmF0aW9uYWwlMjBH
bWJILGM9REU/Q2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDANBgkqhkiG9w0BAQUFAAOCAQEAFZCu
YmsdsJQWyEK8286QMCcYytKL6eKzZnm7isDcYmWKr3F1MqV/CsyfQQ0pGC0ACdjw/uWGgtrLsN9X
hYDiO4maoicRgMO7cPR4b5YGHfwC7VYxn0DLCBqx34oBRB90LCGK3Es4cZ5Wo+c5mLAcvJ+IzFnB
BgwDWU3+tXcZe5qzLUb2KSNT4WM4ysaVAwBYtGHgU+5wbPrOD0yYFoyi3rgEU2K63SIymvewOD14
wGX7KaWnJLBrSlbkPYoQxDfKPOxb3sTmVjK5eql8zDoiFc7hETorlQprijNVDmsYPYnFVECUXASQ
HnlQZ1IlT0iXQiZdNmeGUKkOQHl/BeqXxTCCBYYwggRuoAMCAQICAkcVMA0GCSqGSIb3DQEBBQUA
MHoxCzAJBgNVBAYTAkRFMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMSUw
IwYDVQQLExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMR0wGwYDVQQDExRULVN5c3RlbXMg
Q29tcGFueSBDQTAeFw0wNTA0MTEwOTI4MTJaFw0wODA0MTEyMzU5MDBaMIHYMQswCQYDVQQGEwJB
VDElMCMGA1UEChMcVC1TeXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDEQMA4GA1UECxMHYXVzdHJp
YTEhMB8GA1UECxMYQ0VFLUFULVZJRS1FTS0wMS5hdXN0cmlhMRowGAYDVQQLExFULVN5c3RlbXMg
QXVzdHJpYTEfMB0GA1UEAxMWSGFydG1haWVyIEFsZXhhbmRlciAwMTEwMC4GCSqGSIb3DQEJARYh
QWxleGFuZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuY29tMIGgMA0GCSqGSIb3DQEBAQUAA4GOADCB
igKBgQCBzuPPhyIz16V/u41Cg8eOEyzCnjTQ2/+XUX76CzSLryHuJHGhjtea14ycDshjC41ZCkLH
avKr909LrQgaPS1BeF3tja9XwJ7u+I8bIFiS+J0AKP2oyp76SpuBzS0ubrOckZgzSiTQHscRnkvb
2SYfyI2d3gD85xo8DQqGSigrVQIEQAAAgaOCAjgwggI0MB8GA1UdIwQYMBaAFGKQKoiCJcPJVuPj
vloUpjQ+jwYvMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUsiPXp43D6udRc2hzEc18bO7I4pYw
dQYDVR0gBG4wbDBqBgkrBgEEAb1HDRAwXTBbBggrBgEFBQcCARZPaHR0cDovL2tyeXB0c2kudGVs
ZXNlYy5kZS9jZ2ktYmluL2Nhc2VydmljZS9rcnlwVFNJL0Rvd25sb2FkUERGL2tyeXBUU0ktQ1BT
LnBkZjBOBgNVHREERzBFgSBBbGV4YW5kZXIuSGFydG1haWVyQHQtc3lzdGVtcy5hdIEhQWxleGFu
ZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuY29tMIIBGQYDVR0fBIIBEDCCAQwwXqBcoFqGWGh0dHA6
Ly9rcnlwdHNpLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9hZl9Eb3dubG9h
ZENSTC5jcmw/LWNybF9mb3JtYXQ9WF81MDkwgamggaaggaOGgaBsZGFwOi8vbGRhcC1rcnlwVFNJ
LnRlbGVzZWMuZGUvY249VC1TeXN0ZW1zJTIwQ29tcGFueSUyMENBLG91PVQtU3lzdGVtcyUyMElu
dGVybmF0aW9uYWwlMjBHbWJILG89VC1TeXN0ZW1zJTIwSW50ZXJuYXRpb25hbCUyMEdtYkgsYz1E
RT9DZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MA0GCSqGSIb3DQEBBQUAA4IBAQAouXnAG7+LMP/3
urannW0DO4j1n6Hvqt8G+MkxisUkSr41aLK10uen0S/+iyLIhhgUC1mag5vVS/Gkzevsi9K3qcSf
wIIBWwdrJKJ+WifbcNuS2YexMKLuBtVe/l6ydHMGtcZ3SQykxAoWYEmhPSpNxgfMUYATDJOZs7bH
l7WNy/43ZgKbsl9BhCNVCro0dC9berFgc1gAZ2O42D3M7TQB3Hqx68iLoYpvmPgMWiQJ6H6C0h/3
fzamxuB+L1DfMSnnOmJvdftpJjZmnORigvfCuMLxkjPbDESLEJtmw3oROemRMFR1oAIYf9qrexiT
a6TVsQzMVnsuQgoZ+dqaFCLbMYIC2DCCAtQCAQEwgYAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoT
HFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5h
dGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFTAJBgUrDgMCGgUA
oIIBrTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNTA2MDYxMTUx
MjZaMCMGCSqGSIb3DQEJBDEWBBSiDvQKciYKnVF7QmoqlPsqFBunZTAkBgkqhkiG9w0BCQ8xFzAV
MAoGCCqGSIb3DQMHMAcGBSsOAwIaMIGRBgkrBgEEAYI3EAQxgYMwgYAwejELMAkGA1UEBhMCREUx
JTAjBgNVBAoTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVt
cyBJbnRlcm5hdGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFjCB
kwYLKoZIhvcNAQkQAgsxgYOggYAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoTHFQtU3lzdGVtcyBJ
bnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgx
HTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFjANBgkqhkiG9w0BAQEFAASBgGjQRHTr
xVz2JPBL/YHCk8UnsNQC41oB4FsVsrqLLw/TAFENhmEw00O1E07Cdym3zQeqA5iNN4t8RWx+KdJA
GVNKU1kmp/HYl6dt5aNaAQfE2KaMQheZ7aUGN7B5w9yX2Q7swy3gQDNDx/cwFDJy5TE3+L2BcPkD
KBY5vZflPBTBAAAAAAAA

------=_NextPart_000_04B3_01C56A9E.D52620F0--

multiple database users
Hartmaier Alexander 17:43 on 02 Jun 2005

Re: multiple database users
Andreas Fromm 07:13 on 03 Jun 2005

Re: multiple database users
William Ross 08:42 on 03 Jun 2005

Re: multiple database users
Hartmaier Alexander 10:29 on 06 Jun 2005

Re: multiple database users
Mark Addison 11:20 on 06 Jun 2005

Re: multiple database users
William Ross 11:39 on 06 Jun 2005

Re: multiple database users
Tony Bowden 13:09 on 06 Jun 2005

Re: multiple database users
Mark Addison 13:34 on 06 Jun 2005

Re: multiple database users
Perrin Harkins 14:30 on 06 Jun 2005

Re: multiple database users
Hartmaier Alexander 11:31 on 06 Jun 2005

Re: multiple database users
Hartmaier Alexander 11:51 on 06 Jun 2005

Re: multiple database users
William Ross 13:46 on 06 Jun 2005

Re: multiple database users
Hartmaier Alexander 14:03 on 06 Jun 2005

Re: multiple database users
William Ross 15:30 on 06 Jun 2005

Re: multiple database users
Hartmaier Alexander 16:44 on 06 Jun 2005

Re: multiple database users
William Ross 18:26 on 06 Jun 2005

Re: multiple database users
Jay Strauss 02:53 on 07 Jun 2005

Re: multiple database users
Perrin Harkins 03:58 on 07 Jun 2005

Re: multiple database users
William Ross 10:23 on 07 Jun 2005

Re: multiple database users
Hartmaier Alexander 09:28 on 07 Jun 2005

Re: multiple database users
Perrin Harkins 12:49 on 07 Jun 2005

Re: multiple database users
Hartmaier Alexander 12:49 on 07 Jun 2005

Re: multiple database users
Perrin Harkins 12:54 on 07 Jun 2005

Re: multiple database users
Hartmaier Alexander 13:02 on 07 Jun 2005

Re: multiple database users
Mark Addison 13:47 on 07 Jun 2005

Generated at 16:35 on 28 Jul 2005 by mariachi v0.52