Avatar billede roo104 Nybegynder
29. oktober 2003 - 12:07 Der er 7 kommentarer og
2 løsninger

Oprette forbindelse til database med windows validering

Hvordan oprettet men en forbindelse til en oracle databse når men logger på db'en via windows.
Jeg kan godt logge på med
Properties prop = new Properties();
prop.setProperty("user", "scott");
prop.setProperty("password", "tiger");

Når jeg fx logger ind via SQL*PLUS sætter jeg en / for username intet pass og et værtsnavn

Men hvad er user og pass når windows foretager valideringen ?
Avatar billede dancni Nybegynder
29. oktober 2003 - 17:13 #1
Når du logger på med / er Oracle brugeren ops$ + os-user.

dvs hvis din windows user hedder 'cni' er den bruger som du logger på oracle med 'OPS$CNI'
Avatar billede roo104 Nybegynder
29. oktober 2003 - 17:43 #2
dvs den skal se sådan her ud ?
prop.setProperty("user", "OPS$CNI");
prop.setProperty("password", "mit_pass");
Avatar billede dancni Nybegynder
29. oktober 2003 - 22:39 #3
Undskyld jeg misforstod formodenligt dit spørgsmål.

Den feature hvor du bruger '/' til at autorificere dig overfor Oracle hedder "external autorification" login.

Du vil skulle gøre noget lignende:

SQLPLUS>CREATE USER OPS$CNI IDENTIFIED externally;

prop.setProperty("user", "/");
prop.setProperty("password", "");
Avatar billede roo104 Nybegynder
30. oktober 2003 - 13:15 #4
Jeg har ikke adgang til at oprette en bruger, jeg er oprettet og kan logge på db'en via windows.

Men jeg brude også kunne fra java
Avatar billede dancni Nybegynder
30. oktober 2003 - 13:23 #5
Udfra dit oprindelige spørgsmål forstår jeg at du er istand til at logge på databasen fra windows med sqlplus (er det forøvrigt kommandolinie udgaven c:>sqlplus / @db?)

Prøv at logge på: SQLPLUS / @dit-databasenavn

I sqlplus kan du lave en 'select user from dual'.

Hvad er resultatet af denne query?
Avatar billede roo104 Nybegynder
30. oktober 2003 - 14:02 #6
bruger ikke kommandolinie udgaven, men den kan ikke logge på med mit windows login.

tnsnames.ora ser sådan her ud:
HIB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = olympia)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = hib.balder.dom)
    )
  )

Jeg logger bare på at windows domaine, som så også giver adgang til oracle.
Hvis jeg bruger den anden SQLPLUS og angiver mit brugernavn og intet pass kan jeg også logge ind. Det er som om der ikke er noget pass på, men det vil Java ikke acceptere.
select user from dual giver mig mit brugernavn og intet andet.
Avatar billede roo104 Nybegynder
30. oktober 2003 - 14:06 #7
hvis jeg angiver et password i sqlplus kan jeg ikke logge ind, men jeg kan dog ikke logge ind i andres db
Avatar billede roo104 Nybegynder
30. oktober 2003 - 15:21 #8
Ok løste problemet på en anden måde. Fik oprettet en rigtig bruger. Fandt ud af at man ikke kan med en Type 4 driver, hvilket er det eneste vi har adgang til. Man burde kunne via en Type 2.
Tak for hjælpen, håber ikke det gør noget jeg trækker mit spærgsmål tilbage og tager hovedparten af pointene.
Avatar billede dancni Nybegynder
30. oktober 2003 - 16:14 #9
Syntes naturligvis at du er en fedterøv :-)

Tak for din uddybning af den løsningen.

Du kan downloade en type 4 jdbc driver (thick driver) fra technet.oracle.com
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester