MSSQL+авторизация
Модераторы: m0p3e, edward_K, Модераторы
MSSQL+авторизация
Чего-то я не понимаю в работе Галки на MSSQL.
Аутентификация на MSSQL смешанная. ODBC trusted connection.
Завожу пользователя TestLogin в суппорте. В сиквеле появляется пользователь TestLogin и GR# к нему. Все права на таблицы и пр даются на него. Однако залогиненный пользователь аутентифицируется в сиквеле как <DOMAIN>\TestLogin и права выданные суппортом никоим образом не обрабатываются и необходимо выдавать их лапками. Прозрачная NT авторизация неудобна, ибо надо иметь возможность заходить любым пользователем. Рассказывать пользователям как создавать ODBC источник и вбивать свое имя и пароль для MSSQL авторизации тоже не хотелось бы. Как настроено у вас?
ЗЫ Если пользователей создавать как <DOMAIN>\<Login> то права подхватываются, но душа не лежит к такому способу...
Аутентификация на MSSQL смешанная. ODBC trusted connection.
Завожу пользователя TestLogin в суппорте. В сиквеле появляется пользователь TestLogin и GR# к нему. Все права на таблицы и пр даются на него. Однако залогиненный пользователь аутентифицируется в сиквеле как <DOMAIN>\TestLogin и права выданные суппортом никоим образом не обрабатываются и необходимо выдавать их лапками. Прозрачная NT авторизация неудобна, ибо надо иметь возможность заходить любым пользователем. Рассказывать пользователям как создавать ODBC источник и вбивать свое имя и пароль для MSSQL авторизации тоже не хотелось бы. Как настроено у вас?
ЗЫ Если пользователей создавать как <DOMAIN>\<Login> то права подхватываются, но душа не лежит к такому способу...
Привет, маэстро!
Вообще формат <DOMAIN>\<Login> справедлив для NT-авторизации.
А если у тебя смешанная, то должно быть просто <Login>.
Может ты в саппорте не активировал переход (Protect - Настройка идентификации доступа)?
А ODBC источник если не ошибаюсь так и так ручками всем вбивать придется. Но пароль вроде бы там не нужен.
Как поживаешь, кстати?
Вообще формат <DOMAIN>\<Login> справедлив для NT-авторизации.
А если у тебя смешанная, то должно быть просто <Login>.
Может ты в саппорте не активировал переход (Protect - Настройка идентификации доступа)?
А ODBC источник если не ошибаюсь так и так ручками всем вбивать придется. Но пароль вроде бы там не нужен.
Как поживаешь, кстати?
Re: MSSQL+авторизация
Так это протект не включен просто, может быть? Я, конечно, понимаю, что предположение не адекватно опыту вопрошающего, но все же...m0p3e писал(а):Однако залогиненный пользователь аутентифицируется в сиквеле как <DOMAIN>\TestLogin и права выданные суппортом никоим образом не обрабатываются и необходимо выдавать их лапками.
Базюка не с бэкапа поднята?
А вообще я не понял - в чем проблема-то? Какая разница, как в сиквеле пользователь аутентифицируется? Главное же, как он в Галактике аутентифицируется? Или где?
А в каком виде в этом фейсе представлены пользователи? С доменом или без?m0p3e писал(а):Приветик!
В саппорте у меня есть Настройка\Идентификация. Но в ней включается прозрачная NT авторизация.
Там переключение авторизации можно делать туда-сюда (если не ошибаюсь, т.к. давно это было). Кажется так: переключил в MS-SQL, после этого зайти в саппорт и тоже переключить.
Протект конечно включен
База была сконверчена. Правда после была перенесена на другой сервер, но переносилась вместе с master базой которую подшаманил ручками.
Сейчас в доменную Galaxy-группу включены пользователи галки и ей (группе) выдан db_owner в сиквеле. Если овнера отнять то пользователи даже войти не могут в базу. Т.е. расчитанные в протекте права на пользователя не применяются, т.к. пользователь создается в сиквеле вида <login>, а ODBC его аутентифицирует как <DOMAIN>\<login>. Но db_owner-ами всех держать преступно. Ибо запускаем тот же Query Analyzer...
База была сконверчена. Правда после была перенесена на другой сервер, но переносилась вместе с master базой которую подшаманил ручками.
Сейчас в доменную Galaxy-группу включены пользователи галки и ей (группе) выдан db_owner в сиквеле. Если овнера отнять то пользователи даже войти не могут в базу. Т.е. расчитанные в протекте права на пользователя не применяются, т.к. пользователь создается в сиквеле вида <login>, а ODBC его аутентифицирует как <DOMAIN>\<login>. Но db_owner-ами всех держать преступно. Ибо запускаем тот же Query Analyzer...
Без домена. Смотрел исходники этого фейсика. Он как раз апдейтит xu$loginname путем добавления домена в логин:А в каком виде в этом фейсе представлены пользователи? С доменом или без?
Там переключение авторизации можно делать туда-сюда (если не ошибаюсь, т.к. давно это было). Кажется так: переключил в MS-SQL, после этого зайти в саппорт и тоже переключить.
x$Users.xu$LoginName := usrDomain + '\' + x$Users.xu$LoginName;
update current x$Users;
После этого уже создавались новые пользователи и по ним ситуация такая же. Боюсь что это какая-то глюка 5.82 (к сожалению она).coolibin писал(а):Короче, хрень какая-то. Я бы перегрузил x$users, чтобы Галактика сама пересоздала пользователей вместе с логинами.
Несколько дополнительных вопросов:
1. Как создается ODBC источник? Особенно закладка авторизации.
2. select loginame from sysprocesses в Query Analizer. Пользователи с доменом или без?
3. Enterprase Manager. <SERVER>\Databases\<GALAXY DATABASE>\Users - пользователи с доменом или без? Поля name и login Name.
Для юзерского 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", Имя_сервера
это при эскуэльной авторизации
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", Имя_сервера
это при эскуэльной авторизации
2 - у меня без доменаm0p3e писал(а):2. select loginame from sysprocesses в Query Analizer. Пользователи с доменом или без?
3. Enterprase Manager. <SERVER>\Databases\<GALAXY DATABASE>\Users - пользователи с доменом или без? Поля name и login Name.
3 - без домена
но у меня и сам сервак не в домене еще
Посмотри еще такую штуку. Когда ты заводишь пользователя в Галактике - задай ему имя для которого нет такого же сетевого логина. Посмотри что будет.