[asp/iis/sql2000] NT login werkt niet goed met domein

Pagina: 1
Acties:

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
Op ons werk maken wij gebruik van IIS 5 en sql server 2000 databases voor een aantal intranet toepassing. Momenteel wordt er een sql server account gebruikt om van ASP naar de database toe te gaan. Ik zou dit het liefst via een NT account willen laten lopen.

Om dit te testen heb ik een site neergezet met 3 pagina's die connecten naar een database en ik heb de 3 pagina's op iis niveau verscillende authentication levels gegeven nl: anonymous, basic en integrated windows. Echter geen van de pagina's kan connecten naar de database.

Op de database (SQL Server 2000) heb ik profiler mee laten lopen en daar zie ik dat alle pagina's proberen aan te loggen als [user]. De user komt van [domein]\[user] die is ingesteld op de virtual directory die ik voor de test site gebruik. Het probleem is dus dat de connectie niet goed gaat. Hij moet dus [domein]/[user] zijn ipv [user] alleen. Hieronder is de code die ik gebruik voor de connectie:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function DbConnect()
 Dim objConn
 
 
 sDBServer = "rhodium"
 sDBDatabase = "test"
 sDBUser  = ""
 sDBPassword = ""
  
 Set objConn = Server.CreateObject("ADODB.Connection")

 objConn.provider = "sqloledb"
 objConn.Open "Data Source=" & sDBServer & ";Initial Catalog=" & sDBDatabase & ";"
  
 Set DbConnect = objConn
End Function


De fout die ik krijg in profiler is:
Cannot login with user [username]
Heeft iemand enig idee wat ik fout doe?

offtopic:
Het kan zijn dat ik wat laat reageer, maar ik zit hier achter de internet pc, want ik heb geen internet op me werkplek ;)

Verwijderd

Buzzman schreef op 31 juli 2002 @ 09:38:
Op ons werk maken wij gebruik van IIS 5 en sql server 2000 databases voor een aantal intranet toepassing. Momenteel wordt er een sql server account gebruikt om van ASP naar de database toe te gaan. Ik zou dit het liefst via een NT account willen laten lopen.

Om dit te testen heb ik een site neergezet met 3 pagina's die connecten naar een database en ik heb de 3 pagina's op iis niveau verscillende authentication levels gegeven nl: anonymous, basic en integrated windows. Echter geen van de pagina's kan connecten naar de database.
Als je anonymous aan hebt staan bij je website, geef daar dan ook in welke user dit moet zijn. Deze user voeg je TOE aan SQLServer via de enterprise manager en aan de database in kwestie. Standaard is dit IUSR_machinenaam.

Daarna moet connecten goed gaan. Overigens kun je de provider meteen in de connection string opnemen: Provider=SQLOLEDB;Server=myserver;Database=mydatabase;". Voor SQLServer 7 versies voeg je bij trusted connections nog toe: 'Trusted_connection=yes"

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
Zover was ik ook al gekomen met een beetje klooien zojuist :)

Alleen gaat dit nog niet goed met windows en basic authentication.

Verwijderd

Windows authentication geeft de huidige user door aan IIS die dan die user gebruikt voor access tot de website. Als je dus user Pietje bent en je vraagt de website op, dan moet Pietje wel aan SQLServer zijn toegevoegd en aan de database. Maak een aparte user group aan in Windows 2000, plaats daar je users in die je toegang wilt geven aan de website, geef die groep leesrechten op de webpages op disk en voeg die groep toe aan SQLServer en aan de database. Dan moet het lukken.

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
Ok, zal ik zo even proberen :)

We hebben nu de volgende code, waarmee het wel lukt om met basic authentication aan te loggen op SQL, alleen dit werkt nog niet met Windows authentication. Dan krijgen we onderstaande error.

* Buzzman gaat verder proberen :P

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function DbConnect()
    Dim objConn
    

    sDBServer   = "rhodium"
    sDBDatabase = "fortistest"
    sDBUser     = ""
    sDBPassword = ""
        
    Set objConn = Server.CreateObject("ADODB.Connection")
    
    objConn.provider = "sqloledb"
    objConn.Open "Data Source=" & sDBServer & ";Initial Catalog=" & sDBDatabase & ";Trusted_connection=yes;"
        
    Set DbConnect = objConn
End Function
Error Type:
Microsoft OLE DB Provider for SQL Server (0x80040E4D)
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
/sectest/ntaut.asp, line 39

Verwijderd

Heb je anonymous access wel uitgezet ? Want die overruled windows authentication.

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
Otis schreef op 31 juli 2002 @ 12:44:
Heb je anonymous access wel uitgezet ? Want die overruled windows authentication.
Uiteraard :)

Maar ik ben weer iets verder met mijn zoektocht :P Het is nu de volgende situatie:

IIS met _alleen_ windows authentication.

En met de volgende resultaten:
Als je lokaal op de server aanlogt, gaat alles goed, dan kan ik op sql komen.
Als je niet lokaal aan bent gelogt, maar via een andere machine de webserver bereikt (hetzelfde NT account) dan werkt het niet en krijg je de error zoals in mijn vorige post.

Alleen heb ik nu geen flauw idee hoe dit op te lossen :)

Dat van die users in een lokale groep stoppen werkt iig niet.

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
Ok, ik ben eruit wat het probleem nu is :)

Het is niet mogelijk als je een client bent, dat je dan 2 "hops" verder (de sql bak) je login door kan geven via de webbak (iis) met de instelling windows authentication. Dit kan alleen maar van 1 bak naar een ander (client naar web of web naar sql).

Schijnbaar moeten we met "kerberos" gaan werken. Alleen heb ik helemaal geen flauw idee hoe ik dat in moet stellen :)

Verwijderd

Ik dacht dat dat alleen een manko van NT4 was (die kon 0 hops doorgeven :) ). Ik dacht hieraan maar je gebruikte win2k dus dat kon het niet zijn. Kerberos is niet zo moeilijk, je kunt ook AD in je netwerk opnemen. Tik eens in 'Kerberos' in de help bij win2k server :)

  • Rene59
  • Registratie: April 2000
  • Laatst online: 29-12-2025
Buzzman schreef op donderdag 01 augustus 2002 @ 19:16:
Het is niet mogelijk als je een client bent, dat je dan 2 "hops" verder (de sql bak) je login door kan geven via de webbak (iis) met de instelling windows authentication. Dit kan alleen maar van 1 bak naar een ander (client naar web of web naar sql).
Enorm oud topic ja, sorry. Maar ik zit met exact hetzelfde probleem en kan er na een dag zoeken maar geen oplossing voor vinden. Wellicht dat iemand hier nog wat meer over zou willen vertellen?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Misschien toch even een nieuw topic openen waarin je aangeeft welke OS je hebt, welke database versie etc. en wat je al gedaan hebt? Dat is denk ik een stuk duidelijker dan zo'n oud topic gebruiken, waarin niet duidelijk is wat je al gedaan hebt :)

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1