Страница 1 из 2

trusted login to MSSQL from ASP

Добавлено: 09 июн 2004, 11:38
MarkM
Prerequisites: Win2000 AS, SQL2000, IIS and SQL on different servers in domain.

ASP script

Код: Выделить всё

<%
  Option Explicit
  Dim strConnect
%>

<HTML>
<HEAD>
<TITLE>Using an SSI to hold the Connection String</TITLE>
</HEAD>
<BODY>

<%
  Dim objConn

  Set objConn = Server.CreateObject("ADODB.Connection")
  strConnect = "Provider=SQLOLEDB;Integrated Security=SSPI;Server=SQLDB.SITE.NET,1433;"
  Response.Write strConnect + "<br>"
  objConn.Open strConnect
  Response.Write "Connected!"
  objConn.Close
  Set objConn = Nothing 
%>

</BODY>
</HTML>
IIS website is set to:
Anonymous access - Disabled
Autenticated access - Basic (I tried all of them)

ASP asks to enter domain\username and password, then returns error:

Код: Выделить всё

Microsoft OLE DB Provider for SQL Server error '80004005' 

Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection. 

/tstdbsec/connect.asp, line 19 
What to do?

Добавлено: 09 июн 2004, 11:55
ura
А тебе нужно только проверить подключение к SQL серверу? База данных там не указана как я вижу.

ASP страница работает от лица анонимного клиента с именем типа IUSR_xxxxx надо бы его добавить в список пользователей SQL сервера, но опять таки не понятно к какой базе.

Также можно попробовать обойти секюрити если создавать SQL сессию в контексте другого account с большими правами и добавить в connection string "Trusted_Connection=Yes"

Также можно попробовать тот же скрип старануть из .VBS файла. Но для меня пока очевидно, что анонимному пользователю доступ к SQL серверу запрещен.

Добавлено: 09 июн 2004, 12:17
папа Карло
Марк, не секурно это.... Совсем никак по другому не сделать?

Добавлено: 09 июн 2004, 12:40
MarkM
ura писал(а):Также можно попробовать обойти секюрити если создавать SQL сессию в контексте другого account с большими правами и добавить в connection string "Trusted_Connection=Yes"
Exactly what I'd like to do.
The idea is, User logs in to website, and then to DB with using his/her NT Domain account with Trusted SQL Connection.

I've tried to add this "Trusted_Connection=Yes" - the same story, the same error.

Добавлено: 09 июн 2004, 12:41
MarkM
папа Карло писал(а):Марк, не секурно это.... Совсем никак по другому не сделать?
A kak sekurno?

Добавлено: 09 июн 2004, 12:50
папа Карло
MarkM писал(а):
папа Карло писал(а):Марк, не секурно это.... Совсем никак по другому не сделать?
A kak sekurno?
вебсервер (аппсервер) ходит 1им логином в базу...... народ на странице логинится логины хранятся в базе.... дальше делаешь кто куда доступ имеет....

Добавлено: 09 июн 2004, 12:54
MarkM
папа Карло писал(а):
MarkM писал(а):
папа Карло писал(а):Марк, не секурно это.... Совсем никак по другому не сделать?
A kak sekurno?
вебсервер (аппсервер) ходит 1им логином в базу...... народ на странице логинится логины хранятся в базе.... дальше делаешь кто куда доступ имеет....
[trn]Ja tak ne ljublju. Togda ne ponjatno kto konnektitsja k base, dlja kakogo jusera v BD sessija rabotaet. Eto tak kak ono sejchas u nas rabotaet.[/trn]

Добавлено: 09 июн 2004, 13:04
папа Карло
MarkM писал(а):
папа Карло писал(а):
MarkM писал(а):
папа Карло писал(а):Марк, не секурно это.... Совсем никак по другому не сделать?
A kak sekurno?
вебсервер (аппсервер) ходит 1им логином в базу...... народ на странице логинится логины хранятся в базе.... дальше делаешь кто куда доступ имеет....
[trn]Ja tak ne ljublju. Togda ne ponjatno kto konnektitsja k base, dlja kakogo jusera v BD sessija rabotaet. Eto tak kak ono sejchas u nas rabotaet.[/trn]
у меня база отвечает за две простых вещи: хранит данные и обеспечивает их целостность.... безопасность я делаю на уровне бизнес логики... при таком подходе база безоговорочно верит БЛЛу.... и лишается ненужных проверок по безопасности и лишних запросов которые завалятся по безопасности.... так ибо скалить апп сервер много проще и дешевле чем базный сервак :)

Добавлено: 09 июн 2004, 13:25
MarkM
папа Карло писал(а):
MarkM писал(а):
папа Карло писал(а):
MarkM писал(а):
папа Карло писал(а):Марк, не секурно это.... Совсем никак по другому не сделать?
A kak sekurno?
вебсервер (аппсервер) ходит 1им логином в базу...... народ на странице логинится логины хранятся в базе.... дальше делаешь кто куда доступ имеет....
[trn]Ja tak ne ljublju. Togda ne ponjatno kto konnektitsja k base, dlja kakogo jusera v BD sessija rabotaet. Eto tak kak ono sejchas u nas rabotaet.[/trn]
у меня база отвечает за две простых вещи: хранит данные и обеспечивает их целостность.... безопасность я делаю на уровне бизнес логики... при таком подходе база безоговорочно верит БЛЛу.... и лишается ненужных проверок по безопасности и лишних запросов которые завалятся по безопасности.... так ибо скалить апп сервер много проще и дешевле чем базный сервак :)
[trn]Ja tebja ponimaju. Ty developer. Tebe tak proshe. Kak potom budet zhit' DBA tebe pofig. DBA chasto nado identificirovat' sessiju. Dlja audita naprimer. Ili hotja by dlja togo chtoby prokontaktirovat' uzera esli nado rubanut' sessiju.
V mojem sluchae baza tak zhe verit BLLu, tochnee Domenu. I net nikakih lishnih zaprosov iz BLL v BD dlja proverki uzera i ego prav.
I net voprosov gde i kak hranit' imena/paroli, i eto tozhe masshtabiruemo, i sovmestimo s Kerberos, Dir Server, SSL i td i tp. Zachem izobreta' koleso autentikacii esli ego uzhe davno izobreli? Zachem zagruzhat' BLL samopal'noj autentikaciej?

Mne nado prosto zastavit' IIS konnektit'sja k BD s kredenshialsami veb-uzera. Poka ne poluchaetsja. [/trn]

Добавлено: 09 июн 2004, 13:30
папа Карло
незнаю незнаю..... все зависит от требований к системе... если написано что каждый юзер ходит своим логином то каждый и будет так ходить..... я слабо представляю как например в интеренет системе будешь делать по-юзерно :)

ЗЫ да и не девелопер я :)

Добавлено: 09 июн 2004, 13:31
ura
В таком случае тебе нужно запретить анонимный доступ к Web приложению (виртуальному каталогу или всему Web серверу), тогда пользователю на экран будет выдана форма регистрации (имя, пароль, домен) тогда должно все заработать.

Добавлено: 09 июн 2004, 14:36
MarkM
папа Карло писал(а):незнаю незнаю..... все зависит от требований к системе... если написано что каждый юзер ходит своим логином то каждый и будет так ходить..... я слабо представляю как например в интеренет системе будешь делать по-юзерно :)

ЗЫ да и не девелопер я :)


[trn] Tochno tak zhe. Uzera iz interneta budut loginit'sja v domen.[/trn]

Добавлено: 09 июн 2004, 14:37
папа Карло
MarkM писал(а):
папа Карло писал(а):незнаю незнаю..... все зависит от требований к системе... если написано что каждый юзер ходит своим логином то каждый и будет так ходить..... я слабо представляю как например в интеренет системе будешь делать по-юзерно :)

ЗЫ да и не девелопер я :)


[trn] Tochno tak zhe. Uzera iz interneta budut loginit'sja v domen.[/trn]
ой спасибо не надо :)

Добавлено: 09 июн 2004, 14:38
MarkM
ura писал(а):В таком случае тебе нужно запретить анонимный доступ к Web приложению (виртуальному каталогу или всему Web серверу), тогда пользователю на экран будет выдана форма регистрации (имя, пароль, домен) тогда должно все заработать.
[trn] Da, ja tak i sdelal. Ono rabotaet esli i SQL i IIS na odnom servere.
Esli na raznyh - ne rabotaet :(
[/trn]

Добавлено: 09 июн 2004, 14:46
папа Карло
MarkM писал(а):
ura писал(а):В таком случае тебе нужно запретить анонимный доступ к Web приложению (виртуальному каталогу или всему Web серверу), тогда пользователю на экран будет выдана форма регистрации (имя, пароль, домен) тогда должно все заработать.
[trn] Da, ja tak i sdelal. Ono rabotaet esli i SQL i IIS na odnom servere.
Esli na raznyh - ne rabotaet :(
[/trn]
юзерам домена разрешено на МС сервах заходить как сервис? второй вопрос.... не исключено, что твой ИИС идет на скл сервер своим локальным пользователем от которого ИИС сервис запущен.