|
|
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
Привет всем, кто решил ознакомиться с проблемкой. В ASP сценарии для соединения с SQL пишу: Set conn = Server.CreateObject("ADODB.Connection") conn.Open "Provider=SQLOLEDB;Integrated Security=SSPI;Initial Catalog=DB;Data Source=Server;" А в Internet Explorer пишет ошибку: Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'GROK\IUSR_GROK' Подскажите, что делать??? PS: Доступ к базе данных на сервере открыт для всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 17:25:48 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
Видимо, для всех, кроме GROK\IUSR_GROK. Добавьте этого товарисча в Logins. Или включите его в группу, которой уже дан доступ к SQL Server'у (естественно, НЕ в группу Администраторов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 17:33:18 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
День добрый! А что, IIS на одном компе, а SQL на другом? По ключевому слову IUSR поищите на этом форуме. Уже обсуждали. Удачи! >Доступ к базе данных на сервере открыт для всех А вот этого НЕ НАДО!!! В любом случае..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 17:34:08 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
И IIS и SQL Server на одном компе, а вот пользователя такого 'GROK\IUSR_GROK' я и не знаю, видно кто-то из системных юзеров. В строке соединения пыталась писать вот так: conn.Open ("DB"), где DB - System DSN (в ODBC); соедиенеия ODBC из других приложений работает отлично, а через ASP опять таже ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:11:00 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
Приложение ASP обращается к ресурсам от имени учетной записи GROK\IUSR_GROK. Так как соединение с SQL трастовое, в SQL-сервере должно быть разрешение на доступ для этой учетной записи. Это достигается заведением логина на SQL-сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:20:22 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
пользователь - 'GROK\IUSR_GROK' - это системный пользователь, от которого либо стартует либо запускает процессы IIS? точно не помню. Я обычно делаю так - Provider=sqloledb;Database=XXX;Trusted_Connection=no;UID=XXX;PWD=XXX и все ОК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:21:53 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
Уважаемый Kiri, на мой взгляд, существует несколько вариантов решения Вашей проблемы: Вариант 1: 1. Для того, чтобы уйти от PCNAME\IUSR_PCNAME при работе ASP вам нужно включить Integrated Security (ну, или хотя бы Basic Authentication, но тогда желательно использовать SSL) на вашем веб-сервере 2. Включить опцию (если таковая имеется, но по-моему если я правильно помню, IIS и так поймет) когда IIS аутенцифицирует пользователя и в дальнейшем использует login credentials этого пользователя для всех дальнейших вызовов 3. Всех пользователей, которые могут работать с базой данных, добавить либо в домен, либо просто на веб-сервер, чтобы IIS мог спокойно провести аутентификацию. 4. Сконфигурировать SQLServer так, чтобы упомянутые выше пользователи (и только они + администраторы) получили к нему доступ - никаких "Доступ к базе данных на сервере открыт для всех"!!! :) Недостаток подхода такого в том, что если у вас не интранет-приложение (где набор пользователей более или менее ограничен), то придется создавать кучу пользователей.... Вариант 2 (предпочтительный, но почему-то не всегда его реализуют): Для всех "бизнес"-вызовов внутри ASP написать COM-компоненты, и там, внутри COM-библиотеки, уже коннектиться к SQL как вашей душеньке угодно. Вариант 3 - сочетание первого и второго варианта. С уважением, Дмитрий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 18:31:11 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
Спасибо всем большое, а Вам Дмитрий особенно. Действительно совсем вылетело из головы, что нужно включить Integrated Security (ведь по умолчанию используется анонимный доступ как раз под именем HostName/IUSR_HostName) Я пока пишу для Интранет, поэтому меня устроит первый способ, а вот с вариантом 2 - интересно, но что-то не очень понятно. Если можно для наглядности один примерчик COM-компонента, а дальше уж я разберусь. Ещё раз всем спасибо! PS: А на счет "Доступ к базе данных на сервере открыт для всех" это было громко сказано, а зато как Все отреагировали не ожидала!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2002, 23:05:36 |
|
||
|
Как соедениться с SQL 2000 из ASP
|
|||
|---|---|---|---|
|
#18+
Есть такое понятие как "многоуровневые" приложения. Самое распространенное количество уровней - 3 Уровень 0 - уровень данных. Тут ваши соединения с базой данных, коннекшны и рекордсеты. Уровень 1 - уровень бизнес-логики. Тут расположены объекты, которые отвечают за бизнес-логику (получение списка клиентов, проверка данных кредитной карты, проведение банковской транзакции). Эти объекты, естественно, используют уровень 0 для доступа к базе данных. Уровень 2 - уровень интерфейса с пользователем. Тут сидит ваш ASP или просто клиент на VB/C++/Delphi-что угодно. Объекты этого уровня ответственны за получение данных от пользователя, передачу данных к объектам уровня 1, получение назад результатов и предстваление результатов пользователям. Главный и самый строгий закон - ОБЪЕКТЫ УРОВНЯ <N> МОГУТ ОБЩАТЬСЯ ТОЛЬКО С ОБЪЕКТАМИ УРОВНЕЙ <N> и <N-1>. Другими словами, из ASP в базу не лазить!!! Нужна какая-то функциональность - пишите бизнес-объект и к нему обращайтесь из ASP. Для "простого" ASP как правило бизнес-логика пишется с помощью COM-объектов (на VB или С++) и вызывается из ASP с помощью Server.CreateObject(...) Для ASP.NET другая песня - там все интегрировано в "одном проекте" но тем не менее все равно следует разделять "бизнес" классы и классы "пользовательского интерфейса"... Если интересно, почитайте в MSDN например вот по такой строке в search: ASP "Using Components and Objects" Дмитрий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2002, 02:04:32 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32067118&tid=1818862]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 407ms |

| 0 / 0 |
