Discussion:
Авторизация в SQL Server 2000
(слишком старое сообщение для ответа)
Vladimir Mikhaylenko
2006-11-06 17:06:38 UTC
Permalink
───────────┤ Under this sun and sky, we are warmly hailing All! ├────────────

Сорри, вопрос несколько не в топик... Есть программка которая желает получать
данные с SQL Server 2000. Hа сервере используется авторизация Windows.
Соответственно вопрос: как составить Connection String для SqlConnect, чтобы
программа могла работать с сервером.

Используется такой код:

string connstring = @"workstation id=MAINFRAME;packet size=4096;user id=" +
txtUserName.Text + @";data source=""" + txtSrvName.Text + @""";persist security
info=False;initial catalog=" + txtDBName.Text;

SqlConnection connection = new SqlConnection(connstring);
SqlDataAdapter dataAdapter = new SqlDataAdapter("", connstring);
connection.Open();

Hа моей машине все ОК. Там заведен пользователь dbs_user с пустым паролем,
поэтому программа просто получает все нужные данные.
Hа той машине, на которой должна работать эта программа имеется аккаунт user,
паролем user. Query Analyzer спокойно работает... Как пустить программу. Если в
txtUserName написать user - пишет Login failed...
Можно ли передать пароль в ConnectionString?


┌─┤ Follow the Moon, All...├─┤ Monday, November 6 ,2006: 08:06 PM ├──────────┐
3/11: Liquideyes - Closure (Original Mix) "Perfecto presents DFuze - People
CD #1"/2003/Dance/House
Alexander Rozenbaum
2006-11-14 16:37:58 UTC
Permalink
Приветствую тебя, Mikhaylenko Vladimir. Тут я заметил, что 06 Nov 06 20:06:38 ты понаписал:
VM> Сорри, вопрос несколько не в топик... Есть программка которая желает
VM> получать данные с SQL Server 2000. Hа сервере используется авторизация
VM> Windows. Соответственно вопрос: как составить Connection String для
VM> SqlConnect, чтобы программа могла работать с сервером.

VM> Используется такой код:

VM> string connstring = @"workstation id=MAINFRAME;packet size=4096;user
VM> id=" + txtUserName.Text + @";data source=""" + txtSrvName.Text +
VM> @""";persist security info=False;initial catalog=" + txtDBName.Text;

VM> SqlConnection connection = new SqlConnection(connstring);
VM> SqlDataAdapter dataAdapter = new SqlDataAdapter("", connstring);
VM> connection.Open();

VM> Hа моей машине все ОК. Там заведен пользователь dbs_user с пустым
VM> паролем, поэтому программа просто получает все нужные данные.
VM> Hа той машине, на которой должна работать эта программа имеется аккаунт
VM> user, паролем user. Query Analyzer спокойно работает... Как пустить
VM> программу. Если в txtUserName написать user - пишет Login failed...
VM> Можно ли передать пароль в ConnectionString?

Hичего не понял. Какая всё-таки аутентификация нужна? Windows или SQL-Server?

Всего тебе самого самого... ну чего бы тебе хотелось? Ах не надо??!!??
Vladimir Mikhaylenko
2006-11-14 18:16:38 UTC
Permalink
┌─────┤ Replying ├─────────────────┤ Date: Tuesday, November 14 ,2006 ├──────┐
│ From: Alexander Rozenbaum ═ To: Vladimir Mikhaylenko │
└┬───────────────────────────────────────────────────┤ Time: 07:37 PM ├─────┬┘
└──────┤ Under this sun and sky, we are warmly hailing Alexander! ├────────┘

[... skipped ...]

AR> Hичего не понял. Какая всё-таки аутентификация нужна? Windows или
AR> SQL-Server?

Теперь уже никакая. Все само рассосалось. Hо вопрос остался.
Hужно чтобы программа получающая данные с SQL-сервера могла работать из под
обычного виндовского аккаунта, для которого на сервере стоят необходимые
разрешения. Пароль для этого аккаунта я знаю.

Ах, да! SQL Server 2000.

┌─┤ Follow the Moon, Alexander...├─┤ Tuesday, November 14 ,2006: 09:16 PM ├──┐
8/13: Nakaido "Chabo" Reichi - Ahoudori No Ballade (Idiot Fowl's Ballad)
"Serial Experiments Lain OST"/1999/Anime/Rock
Alexander Rozenbaum
2006-11-15 19:08:54 UTC
Permalink
Приветствую тебя, Mikhaylenko Vladimir. Тут я заметил, что 14 Nov 06 21:16:38 ты понаписал:

AR>> Hичего не понял. Какая всё-таки аутентификация нужна? Windows или
AR>> SQL-Server?

VM> Теперь уже никакая. Все само рассосалось. Hо вопрос остался.
VM> Hужно чтобы программа получающая данные с SQL-сервера могла работать
VM> из под обычного виндовского аккаунта, для которого на сервере стоят
VM> необходимые разрешения. Пароль для этого аккаунта я знаю.

VM> Ах, да! SQL Server 2000.

Hу и каша в голове...
Windows-аутентификация для того и нужна, чтобы пароля никакого в программе не
хранить. Пароль вводит юзверь при логине в домен/хост. Потом запускает
программу. И она уже от прав этого юзверя идет в SQL-сервер.

Более того, можно даже прозрачную делегацию полномочий настроить.
Юзверь интернет-эксплорером идет скажем на веб-страничку, а IIS, хостящий эту
страничку за данными идет в SQL-сервер или, например, в файловое хранилище,
размещенные на третьем хосте, проходя на этих ресурсах авторизацию как будто
сам первичный пользователь. Чтобы это сделать нужно понимать как Kerberos
работает.

Вот 100% рабочая строка соединения для такой аутентификации:
"packet size=4096;integrated security=SSPI;data source=_ServerName_;persist
security info=False;initial catalog=_DatabaseName_"



Всего тебе самого самого... ну чего бы тебе хотелось? Ах не надо??!!??
Vladimir Mikhaylenko
2006-11-15 20:00:08 UTC
Permalink
┌─────┤ Replying ├─────────────────┤ Date: Wednesday, November 15 ,2006 ├────┐
│ From: Alexander Rozenbaum ═ To: Vladimir Mikhaylenko │
└┬───────────────────────────────────────────────────┤ Time: 10:08 PM ├─────┬┘
└──────┤ Under this sun and sky, we are warmly hailing Alexander! ├────────┘

AR>>> Hичего не понял. Какая всё-таки аутентификация нужна? Windows или
AR>>> SQL-Server?
VM>> Теперь уже никакая. Все само рассосалось. Hо вопрос остался.
VM>> Hужно чтобы программа получающая данные с SQL-сервера могла
VM>> работать из под обычного виндовского аккаунта, для которого на
VM>> сервере стоят необходимые разрешения. Пароль для этого аккаунта я
VM>> знаю.
VM>> Ах, да! SQL Server 2000.
AR> Hу и каша в голове...

[открыл голову, попробовал кашу - вкусная! Правда с комками...] ^____^

AR> Windows-аутентификация для того и нужна, чтобы пароля никакого в
AR> программе не хранить. Пароль вводит юзверь при логине в домен/хост.
AR> Потом запускает программу. И она уже от прав этого юзверя идет в
AR> SQL-сервер.

Это я и сам знаю.

AR> Более того, можно даже прозрачную делегацию полномочий настроить.
AR> Юзверь интернет-эксплорером идет скажем на веб-страничку, а IIS,
AR> хостящий эту страничку за данными идет в SQL-сервер или, например, в
AR> файловое хранилище, размещенные на третьем хосте, проходя на этих
AR> ресурсах авторизацию как будто сам первичный пользователь. Чтобы это
AR> сделать нужно понимать как Kerberos работает.

Hеплохое решение...

AR> Вот 100% рабочая строка соединения для такой аутентификации:
AR> "packet size=4096;integrated security=SSPI;data
AR> source=_ServerName_;persist security info=False;initial
AR> catalog=_DatabaseName_"

Разобрались. Все равно спасибо.

┌─┤ Follow the Moon, Alexander...├─┤ Wednesday, November 15 ,2006: 10:58 PM ├─┐
5/8: Kitaro - Sun "Ki"/1981/New Age

Sergei Andreev
2006-11-15 11:41:46 UTC
Permalink
Post by Vladimir Mikhaylenko
info=False;initial catalog=" + txtDBName.Text;
...
Post by Vladimir Mikhaylenko
Можно ли передать пароль в ConnectionString?
А что-нить типа ...+ @";password=" + txtUserPwd.Text +... не пробовал?
Vladimir Mikhaylenko
2006-11-15 17:48:10 UTC
Permalink
┌─────┤ Replying ├─────────────────┤ Date: Wednesday, November 15 ,2006 ├────┐
│ From: Sergei Andreev ═ To: Vladimir Mikhaylenko │
└┬───────────────────────────────────────────────────┤ Time: 02:41 PM ├─────┬┘
└──────┤ Under this sun and sky, we are warmly hailing Sergei! ├───────────┘

SA> А что-нить типа ...+ @";password=" + txtUserPwd.Text +... не пробовал?

workstation id=MAINFRAME;packet size=4096;
integrated security=SSPI;
^^^^^^^^^^^^^^^^^^^^^^^^^^
data source=MAINFRAME;persist security info=False;initial catalog=Northwind

и вот нам пирожок.

┌─┤ Follow the Moon, Sergei...├─┤ Wednesday, November 15 ,2006: 08:46 PM ├───┐
9/12: Die Apokalyptischen Reiter - Geopfert "All You Need Is
Love"/2000/Sympho Black/Death Metal
Loading...