Avatar billede luttichau Nybegynder
12. marts 2002 - 21:15 Der er 29 kommentarer og
1 løsning

NT autentication i asp mod en MS SQL 2000

hejsa.. har i prøvet at få dette til at virker:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q247931

Jeg har prøvet at få det til at køre mellem 2, 2000 domæner hvor det ene domæne holder SQL serveren og det andet web serveren men jeg får en access fejl når jeg prøver at forbinde mig til databasen via ASP.. HJÆÆLP!
Avatar billede bennytordrup Nybegynder
12. marts 2002 - 23:03 #1
Hvilken access fejl?
Avatar billede sys64738 Nybegynder
12. marts 2002 - 23:04 #2
Så længe du er verificeret på NT/eller SQL-niveau er der vel ikke noget problem. Prøv at Logge dig på SQL-serveren fra webserveren via Enterprise Manager... Hvis du kan det er det jo bare at lægge adgangen i connection string!

Application("Connection1_ConnectionString") = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=DataBaseName;Data Source=SQLserverName;User Id=UserID;PASSWORD=PassWord;DATABASE=DataBaseName;Regional=Yes"
Avatar billede luttichau Nybegynder
13. marts 2002 - 09:15 #3
Microsoft OLE DB Provider for SQL Server error '80040e4d'

Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

/test/connectstring.asp, line 4

Det er fejlen.. før den får en jeg dialog boks hvor den beder mig om brugernavn og password.. hvilket også er noget skod fordi det er et website hvor anonyme brugere skal have adgang.
Avatar billede luttichau Nybegynder
13. marts 2002 - 09:16 #4
sys64738: hele idéen er at fjerne login og password fra webserveren så det aldrig ligger nogen steder i clear text..
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 09:35 #5
På din SQL Server går du ind i Enterprice Manager.
Under dit servernavn har du en gruppe, som hedder Security, og herunder finder du Logins.

Har du 'NG AUTHORITY\ANONYMOUS LOGON' oprettet under login? Hvis ikke, så prøv at tilføje den. Evt. ved at vælge bruger fra Web-serverens domæne.

Hvis den er tilføjet, har du så de nødvendige rettigheder? (server access).
Avatar billede luttichau Nybegynder
13. marts 2002 - 09:50 #6
'NG AUTHORITY\ANONYMOUS LOGON' er ikke en bruger.. jeg har derimod en bruger som har adgang til min database.. og en bruger med samme navn og password har fået adgang til webserveren i det andet domæne..
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 09:58 #7
Hvad konto kører dine ASP-sider under?

Alternativt: Prøv at ændre din sqlservers sikkerhedsindstillinger til SQL Server (mixed mode) og så angive sa som bruger id
Avatar billede luttichau Nybegynder
13. marts 2002 - 10:00 #8
Jeg tror ikke du forstår.. hele pointen er _ikke_ at bruge mixed mode.. men kun at bruge NT brugere..

1) administration

2) sikkerhed

spørgsmålet er bare om det overhovedet kan lade sig gøre at bruge en NT bruger når man forbinder sig til SQL serveren via en ASP side..

Mine ASP sider bruger den bruger som er angivet i webserveren som den anonyme bruger..
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:05 #9
Og er den bruger så tilføjet til SQL Serveren under Logins?
Avatar billede luttichau Nybegynder
13. marts 2002 - 10:06 #10
Yes..
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:06 #11
Det skal den være, eller være med i SQL Serverens administrator-gruppe.
Avatar billede luttichau Nybegynder
13. marts 2002 - 10:07 #12
Det er den og den har fået adgang til det i sqlserveren som den skal have adgang til..
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:17 #13
Den anonyme bruger til IIS, er den oprettet som bruger på den anden maskine også?

i.e. Har du fulgt alle de anvisninger, der er givet i den knowledge base artikel, du gav link til?

Vi bruger en lignende opstilling med webserver på en maskine og sql server på en anden. Vi har ikke problemer, men vi bruger også SQL Authentication.
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:18 #14
Hvis du læser dit link til ende, så står der direkte, at din fejlbesked hænger sammen med SQL Server konfiguration til NT Authentication

The following error messages indicate problems with the SQL Server configuration for Windows NT authentication:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D)
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '\'.

Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:24 #15
Hvis du læser dit link til ende, så står der direkte, at din fejlbesked hænger sammen med SQL Server konfiguration til NT Authentication

The following error messages indicate problems with the SQL Server configuration for Windows NT authentication:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D)
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user '\'.

Microsoft OLE DB Provider for ODBC Drivers error '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:24 #16
If you connect using the OLEDB provider for SQL Server (Provider=SQLOLEDB), the connection string must include "Integrated Security=SSPI."


Prøv at tilføje "Integrated Security=SSPI" til din connectionstring
Avatar billede luttichau Nybegynder
13. marts 2002 - 10:47 #17
Jah jeg har set det.. men jeg kan stadig ikke finde ud af hvad der er galt.. hvordan er konfigurationen i din webserver..?.. har du basic authentication slået til og har du windows integrated authentication slået til?.. hvilken bruger har du sat til at være din anonyme bruger?.. er det IUSR kontoen?
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:50 #18
Jeg har ikke adgang til serveren nu, men jeg mener, at det er basic authentication. På SQL Serveren bruger vi mixed mode.

Den anonyme bruger er den standardkonto, som IIS-en sætter op.
Avatar billede luttichau Nybegynder
13. marts 2002 - 10:51 #19
ok, men definere i så i asp'en hvilken bruger der skal logge på SQL serveren?
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 10:54 #20
Ja, 'sa'
Avatar billede luttichau Nybegynder
13. marts 2002 - 10:56 #21
ok, her har vi så humlen i det hele. Hvis jeg kører mixed mode og definere hvilken bruger som har adgang til SQL serveren så virker det også men det kunne være smart hvis man kunne definere hvilken bruger der har adgang til SQL serveren i webserveren sådan at hvis der er nogen som finder et hack til ASP, så han kan se min kode så kan han aldrig finde mit password. Problemet er at den tekst jeg har fundet er om en SQL server 7 og sikkert en NT 4.0 så jeg er overhovedet ikke sikker på at det kan lade sig gøre.
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 11:01 #22
Det er ikke web-serveren, som skal styre adgang til SQL Serveren. Det er SQL Serveren, som skal styre adgangen via de NT-konti, som er oprettet på SQL Serveren og de Logins, der er oprettet på SQL Serveren. Bland Web Serveren uden om det.
Avatar billede luttichau Nybegynder
13. marts 2002 - 11:03 #23
Jamen du logger ind på SQL serveren via webserveren.. faktisk vil jeg bare flytte dine login information fra ASP filen og op i selve webserveren.
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 11:06 #24
Hvis du bruger NT Authentication på SQL Server, så er den faktisk fløjtende ligeglad med det bruger-navn, du angiver i connection-string. Den logger ind via den NT Bruger, som er logget på - og det vil være den konto, som ASP kører under.

Er dine servere placeret bag en firewall?
Avatar billede luttichau Nybegynder
13. marts 2002 - 11:09 #25
mm.. ok men hvor definere du hvilken konto ASP kører under?

Jep mine servere er bag firewall
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 11:13 #26
Så har du filter på, som tillader forespørgsler på port 80 at blive videresendt til din SQL Server.

Hvis du med sikkerhed ved, at port 1433 er lukket, så kan du roligt køre med SQL Authentication. Jeg har en SQL Server kørende på min computer, som er koblet på via Router og ADSL. Jeg har adgang til web-server og ftp-server på den computer udefra, men jeg kan ikke få fat i en SQL server på den udefra, da port 1433 er lukket på min firewall.
Avatar billede bennytordrup Nybegynder
13. marts 2002 - 11:21 #27
Umiddelbart vil jeg tro, at det er IUSR, så den NT-bruger, der skal være som login på SQL Serveren er

WebServer\IUSR_WebServer
Avatar billede mr_white Nybegynder
14. marts 2002 - 17:12 #28
Jeg tror umiddelbart at problemet ligger i at de 2 domains ikke kender hinanden. Dvs. løsningen givet vis ville være at lave en skov hvor de 2 domains kender hinanden. (alla trust relation ship i nt4) Du kan rellativt "nemt" teste om det ville være en løsning ved at installere en sql server i samme domain som webserveren står .. og se om du kan få det til at køre. (hvis ikke .. har du i hvertfald en indikation af at der også er noget andet galt)
I NT 4 kunne man tit løse denne type problemer ved simpelthen at oprette en bruger i begge domains med samme login og password. Hvor efter man ville have "fri" adgang fra det ene domain til det andet. Det kan man ikke længere i Win2k. (men linket du henviser til drejer sig jo formenligt også om nettop NT4)
Hvis det lykkedes dig at udføre stuntet med 2 maskiner i samme domain. Så vil løsningen være at oprette trust imellem de 2 domains (lave en skov som det hedder på AD´sk)


Benny. Jeg tror du misser pointen omkring sikkerheden. Ja, umiddelbart kan man godt sige at sikkeheden imellem web og sql server er ok selv om man bruger mixed mode (sql server sikkerhed) så længe at sql serveren står godt gemt. Men (et) problem med denne apporoch er at man på den måde er nødsaget til at have login/pass word information liggende i clear tekst format på webserveren. Det er man af sikkerheds mæssige årsager ikke glad for. Desuden er der nogle performance issues, der tyder på at et nt login giver en marginal bedre performance, pga. at alt kommer til at ske i samme sikkerheds content.. hvilket gør det nemmere at lave en ordenlig connection pooling. (Bla.)


Hygge
Hvid
Avatar billede mr_white Nybegynder
14. marts 2002 - 17:18 #29
ups. Ja .. den bruger du bruger skal selfølgelig have rettigheder til netværket. Hvilket IUSR_Spand ikke har som standard. Så du skal oprette en domain user og lade IIS instandsen (sitet) køre under denne bruger i stedet. Det giver selfølgelig nogle sikkerheds problemer med at brugeren så har rettigheder til at kontakte andre maskiner over netværket fra den contekst som webserveren køre. (det skal selfølgelig begrænses mest muligt.)

Hygge
Hvid

ps. Benny jeg ser du nævner "sa" .. nej nej nej .. ALDRIG. Du må aldrig nogen sinde lade en web app køre med SA rettigheder til din database. Det kan kun gå galt. Det svare til mere eller mindre til at stikke folk dit admin pass til database serveren. Hvis der viser sig at være en fejl i din input validering (som du forhåbenlig har ALLE steder) så folk ved en fejl kan fyrre commandoer til sql serveren. Vil de med SA rettigheder have fuld kontrol over SQL serveren (og som standard vil det sige System rettigheder til selve OS´et.. need i say more)
Avatar billede luttichau Nybegynder
14. marts 2002 - 17:22 #30
Hej hvid..
Jeg tror muligvis du har ret.. jeg opgav fordi det slog mig at siden jeg har begge domains gemt væk bag firewalls så kan den sikkert ikke finde ud af at kommunikere login informationerne..

Men jeg tror du har ret i at det ikke kan lade sig gøre i win2k når de 2 domains ikke får lov at snakke sammen..
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