MSSQL+авторизация

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

MSSQL+авторизация

Сообщение m0p3e »

Чего-то я не понимаю в работе Галки на MSSQL.
Аутентификация на MSSQL смешанная. ODBC trusted connection.
Завожу пользователя TestLogin в суппорте. В сиквеле появляется пользователь TestLogin и GR# к нему. Все права на таблицы и пр даются на него. Однако залогиненный пользователь аутентифицируется в сиквеле как <DOMAIN>\TestLogin и права выданные суппортом никоим образом не обрабатываются и необходимо выдавать их лапками. Прозрачная NT авторизация неудобна, ибо надо иметь возможность заходить любым пользователем. Рассказывать пользователям как создавать ODBC источник и вбивать свое имя и пароль для MSSQL авторизации тоже не хотелось бы. Как настроено у вас?

ЗЫ Если пользователей создавать как <DOMAIN>\<Login> то права подхватываются, но душа не лежит к такому способу...
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

Привет, маэстро! :)
Вообще формат <DOMAIN>\<Login> справедлив для NT-авторизации.
А если у тебя смешанная, то должно быть просто <Login>.
Может ты в саппорте не активировал переход (Protect - Настройка идентификации доступа)?
А ODBC источник если не ошибаюсь так и так ручками всем вбивать придется. Но пароль вроде бы там не нужен.
Как поживаешь, кстати?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Приветик! :)
Нормально поживаем! Что-то давно тебя в Москве небыло :)

Хм. В саппорте у меня есть Настройка\Идентификация. Но в ней включается прозрачная NT авторизация. Т.е. при входе в Галку пароль не спрашивается вообще.
ODBC источник у меня в логин-скрипте создается через odbcconf.
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Re: MSSQL+авторизация

Сообщение coolibin »

m0p3e писал(а):Однако залогиненный пользователь аутентифицируется в сиквеле как <DOMAIN>\TestLogin и права выданные суппортом никоим образом не обрабатываются и необходимо выдавать их лапками.
Так это протект не включен просто, может быть? Я, конечно, понимаю, что предположение не адекватно опыту вопрошающего, но все же...
Базюка не с бэкапа поднята?

А вообще я не понял - в чем проблема-то? Какая разница, как в сиквеле пользователь аутентифицируется? Главное же, как он в Галактике аутентифицируется? Или где?
sim
Местный житель
Сообщения: 1805
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Россия

Сообщение sim »

m0p3e писал(а):Приветик! :)
В саппорте у меня есть Настройка\Идентификация. Но в ней включается прозрачная NT авторизация.
А в каком виде в этом фейсе представлены пользователи? С доменом или без?
Там переключение авторизации можно делать туда-сюда (если не ошибаюсь, т.к. давно это было). Кажется так: переключил в MS-SQL, после этого зайти в саппорт и тоже переключить.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Протект конечно включен :)
База была сконверчена. Правда после была перенесена на другой сервер, но переносилась вместе с master базой которую подшаманил ручками.
Сейчас в доменную Galaxy-группу включены пользователи галки и ей (группе) выдан db_owner в сиквеле. Если овнера отнять то пользователи даже войти не могут в базу. Т.е. расчитанные в протекте права на пользователя не применяются, т.к. пользователь создается в сиквеле вида <login>, а ODBC его аутентифицирует как <DOMAIN>\<login>. Но db_owner-ами всех держать преступно. Ибо запускаем тот же Query Analyzer...
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

А в каком виде в этом фейсе представлены пользователи? С доменом или без?
Там переключение авторизации можно делать туда-сюда (если не ошибаюсь, т.к. давно это было). Кажется так: переключил в MS-SQL, после этого зайти в саппорт и тоже переключить.
Без домена. Смотрел исходники этого фейсика. Он как раз апдейтит xu$loginname путем добавления домена в логин:

x$Users.xu$LoginName := usrDomain + '\' + x$Users.xu$LoginName;
update current x$Users;
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

Короче, хрень какая-то. Я бы перегрузил x$users, чтобы Галактика сама пересоздала пользователей вместе с логинами.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

coolibin писал(а):Короче, хрень какая-то. Я бы перегрузил x$users, чтобы Галактика сама пересоздала пользователей вместе с логинами.
После этого уже создавались новые пользователи и по ним ситуация такая же. Боюсь что это какая-то глюка 5.82 (к сожалению она).

Несколько дополнительных вопросов:
1. Как создается ODBC источник? Особенно закладка авторизации.
2. select loginame from sysprocesses в Query Analizer. Пользователи с доменом или без?
3. Enterprase Manager. <SERVER>\Databases\<GALAXY DATABASE>\Users - пользователи с доменом или без? Поля name и login Name.
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

Для юзерского ODBC достаточно следующих ключей:

WSHShell.RegWrite "HKCU\SOFTWARE\ODBC\ODBC.INI\"&Database&"\DataBase", Имя_базы
WSHShell.RegWrite "HKCU\SOFTWARE\ODBC\ODBC.INI\"&"\ODBC Data Sources\" & DataBase, "SQL Server"
WSHShell.RegWrite "HKCU\SOFTWARE\ODBC\ODBC.INI\"&Database&"\Driver", "%WINDIR%\System32\SQLSRV32.dll"
WSHShell.RegWrite "HKCU\SOFTWARE\ODBC\ODBC.INI\"&Database&"\LastUser", Любой логин (Гала его не будет никогда использовать)
WSHShell.RegWrite "HKCU\SOFTWARE\ODBC\ODBC.INI\"&Database&"\Server", Имя_сервера

это при эскуэльной авторизации
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

m0p3e писал(а):2. select loginame from sysprocesses в Query Analizer. Пользователи с доменом или без?
3. Enterprase Manager. <SERVER>\Databases\<GALAXY DATABASE>\Users - пользователи с доменом или без? Поля name и login Name.
2 - у меня без домена
3 - без домена

но у меня и сам сервак не в домене еще

Посмотри еще такую штуку. Когда ты заводишь пользователя в Галактике - задай ему имя для которого нет такого же сетевого логина. Посмотри что будет.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

coolibin писал(а): 2 - у меня без домена
Вот это непонятно... А пользователи в домене? Как входят в сеть?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

coolibin писал(а): Для юзерского ODBC достаточно следующих ключей:
Все так. Но есть еще
Trusted_Connection=Yes

ODBC создается вызовом в loginскрипте:
@odbcconf /a {CONFIGDSN "SQL Server" "DSN=<MyDatabaseName>|SERVER=<ServerName>|NETWORK=DBNMPNTW|DATABASE=<MyDataBaseName>|TRUSTED_CONNECTION=yes||"}
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

m0p3e писал(а): Все так. Но есть еще
Trusted_Connection=Yes
Ааа..., сорри, я просто не внимательно посмотрел вначале. Все что я писал - касалось эскуэльной авторизации...
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

Я помню, что в 584 была трабля какая-то с переключением в энтевую авторизацию средствами суппорта, но какая конкретно - не помню.
Ответить