Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8  ОтправитьПечать
Очень популярная тема (более 25 ответов) OFF: windows авторизация на SQL'е (число прочтений - 33263 )
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #90 - 27. Октября 2009 :: 08:38
Печать  
В общем разобрался. Не вдаваясьв нюансы. Скрытие по колонкам также работает. Схема такова: вью на защищаемую таблицу для показа данных. Вместо скрываемых колонок либо константные значения либо служебные колонки из той же таблицы. Для предотвращения затирания используем триггер instead of update. Затык со вставкой(вью не апдейтебл) решается так: добавляем служебную колонку в защищаемую таблицу. Внимание: добавляем не через конфигуратор, поскольку при вставке 1С разбирает метаданные объекта и генерит список колонок на основании этого списка.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #91 - 27. Октября 2009 :: 12:04
Печать  
ArtInSky писал(а) 27. Октября 2009 :: 08:38:
В общем разобрался. Не вдаваясьв нюансы. Скрытие по колонкам также работает. Схема такова: вью на защищаемую таблицу для показа данных. Вместо скрываемых колонок либо константные значения либо служебные колонки из той же таблицы. Для предотвращения затирания используем триггер instead of update. Затык со вставкой(вью не апдейтебл) решается так: добавляем служебную колонку в защищаемую таблицу. Внимание: добавляем не через конфигуратор, поскольку при вставке 1С разбирает метаданные объекта и генерит список колонок на основании этого списка.



Хорошая новость. Буду пробовать-смотреть. Баланс вот только бы сдать  Подмигивание.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #92 - 27. Октября 2009 :: 16:37
Печать  
ArtInSky, а все это едет только на 2005-м?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #93 - 28. Октября 2009 :: 15:19
Печать  
Поставил SQLExpress 2005, пропатчил 25 релиз, как описано http://www.script-coding.info/SQL2005.html, за исключением этого:


Возможно, для коллективной работы в базе данных (одновременной работы нескольких пользователей) могут потребоваться дополнительные изменения в BkEnd.dll, которые можно произвести с помощью Unofficial Service Pack v2.13.24 для 24 релиза 1С (он работает и на 25 релизе), установив флажок "Разрешать другим пользователям входить в базу (SQL)" на вкладке "Защита". Эти изменения можно произвести и вручную (для 25-го релиза 1С):
000DA023: 85 40
000DA024: C0 90

Примечание: после вышеупомянутых изменений 1С будет производить верификацию структуры таблиц и процедур всегда, а не только при входе первого пользователя в базу (при коллективной работе), что немного замедлит запуск 1С.



(можно и это сделать, но тогда верификация будет у каждой сессии, а нам оно надо?)

Чтобы предложенная конструкия работала, у
пользователей с ролями public, необходимо включить опцию "View Server State" (иначе не удается получить кол-во активных сессий)
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #94 - 29. Октября 2009 :: 09:00
Печать  
ArtInSky писал(а) 27. Октября 2009 :: 08:38:
В общем разобрался. Не вдаваясьв нюансы. Скрытие по колонкам также работает. Схема такова: вью на защищаемую таблицу для показа данных. Вместо скрываемых колонок либо константные значения либо служебные колонки из той же таблицы. Для предотвращения затирания используем триггер instead of update. Затык со вставкой(вью не апдейтебл) решается так: добавляем служебную колонку в защищаемую таблицу. Внимание: добавляем не через конфигуратор, поскольку при вставке 1С разбирает метаданные объекта и генерит список колонок на основании этого списка.


А как достают "правильные" данные из защищаемых колонок пользователи со всеми правами?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #95 - 30. Ноября 2009 :: 07:42
Печать  
ArtInSky писал(а) 24. Сентября 2009 :: 15:57:
Я хочу, чтобы даже программисты 1С не имели возможности при помощи тех же прямых запросов получать информацию, которую им не положено видеть. Т.е., даже написав что-то подобное:
Код
Выбрать все
Сет = СоздатьОбъект("ODBCRecordSet");
текст = "
|select * from sc838
|";
ТабИтоги = Сет.ВыполнитьИнструкцию(Текст);
 


они получили информацию только из тех колонок, которые им доступны. Это я реализовал с помощью view.


Мне тут подумалось, что от программистов 1С это все равно не реально скрыть - достаточно написать запрос, который будет выполняться всеми пользователями и свои результаты куда-нить складировать. В один прекрасный момент он отработает и у чела со всеми правами.
Что-то подобное можно сделать и на 8-ке. Допустим у программиста есть доступ к бух.базе, но нет доступа к базе ЗУП'а. Если предположить, что доступ к Бух и ЗУП-базам имеет глав.бух, то из бух-базы можно постучаться в ЗУП под глав.бухом.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #96 - 18. Декабря 2009 :: 08:49
Печать  
Кажется разобрался, как отказаться от создания индексов на view и чтобы при этом работало Спр.НайтиПоКоду().
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #97 - 23. Декабря 2009 :: 14:45
Печать  
chessman писал(а) 27. Октября 2009 :: 16:37:
ArtInSky, а все это едет только на 2005-м?

Да, едет. Только у меня не Express.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #98 - 23. Декабря 2009 :: 14:47
Печать  
chessman писал(а) 30. Ноября 2009 :: 07:42:
ArtInSky писал(а) 24. Сентября 2009 :: 15:57:
Я хочу, чтобы даже программисты 1С не имели возможности при помощи тех же прямых запросов получать информацию, которую им не положено видеть. Т.е., даже написав что-то подобное:
Код
Выбрать все
Сет = СоздатьОбъект("ODBCRecordSet");
текст = "
|select * from sc838
|";
ТабИтоги = Сет.ВыполнитьИнструкцию(Текст);
 


они получили информацию только из тех колонок, которые им доступны. Это я реализовал с помощью view.


Мне тут подумалось, что от программистов 1С это все равно не реально скрыть - достаточно написать запрос, который будет выполняться всеми пользователями и свои результаты куда-нить складировать. В один прекрасный момент он отработает и у чела со всеми правами.
Что-то подобное можно сделать и на 8-ке. Допустим у программиста есть доступ к бух.базе, но нет доступа к базе ЗУП'а. Если предположить, что доступ к Бух и ЗУП-базам имеет глав.бух, то из бух-базы можно постучаться в ЗУП под глав.бухом.


Это другая задача. И решать ее нужно иначе. Съесть слона по кусочкам.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #99 - 23. Декабря 2009 :: 14:48
Печать  
chessman писал(а) 29. Октября 2009 :: 09:00:
ArtInSky писал(а) 27. Октября 2009 :: 08:38:
В общем разобрался. Не вдаваясьв нюансы. Скрытие по колонкам также работает. Схема такова: вью на защищаемую таблицу для показа данных. Вместо скрываемых колонок либо константные значения либо служебные колонки из той же таблицы. Для предотвращения затирания используем триггер instead of update. Затык со вставкой(вью не апдейтебл) решается так: добавляем служебную колонку в защищаемую таблицу. Внимание: добавляем не через конфигуратор, поскольку при вставке 1С разбирает метаданные объекта и генерит список колонок на основании этого списка.


А как достают "правильные" данные из защищаемых колонок пользователи со всеми правами?


Например, через роль базы данных.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #100 - 23. Декабря 2009 :: 14:50
Печать  
chessman писал(а) 18. Декабря 2009 :: 08:49:
Кажется разобрался, как отказаться от создания индексов на view и чтобы при этом работало Спр.НайтиПоКоду().


Индексы на вью - доп. затраты для сервера.
Чтобы работал поиск по коду и намиенованию нужно патчить bkend убивая хинты оптимизатора. Кстати, и серверу легче будет, поскольку он сам сможет выбирать индекс.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #101 - 23. Декабря 2009 :: 17:54
Печать  
ArtInSky писал(а) 23. Декабря 2009 :: 14:50:
Индексы на вью - доп. затраты для сервера.
Чтобы работал поиск по коду и намиенованию нужно патчить bkend убивая хинты оптимизатора. Кстати, и серверу легче будет, поскольку он сам сможет выбирать индекс.

об этом можно подробней.
« Последняя редакция: 24. Декабря 2009 :: 06:53 - Z1 »  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #102 - 25. Декабря 2009 :: 20:10
Печать  
ArtInSky писал(а) 23. Декабря 2009 :: 14:50:
chessman писал(а) 18. Декабря 2009 :: 08:49:
Кажется разобрался, как отказаться от создания индексов на view и чтобы при этом работало Спр.НайтиПоКоду().


Индексы на вью - доп. затраты для сервера.
Чтобы работал поиск по коду и намиенованию нужно патчить bkend убивая хинты оптимизатора. Кстати, и серверу легче будет, поскольку он сам сможет выбирать индекс.


Все верно, именно так и сделал.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #103 - 25. Декабря 2009 :: 20:16
Печать  
ArtInSky, можно поподробнее, как ты все-таки реализовал у себя - с индексированными view  или с дополнительным патчем bkend?
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #104 - 28. Декабря 2009 :: 15:31
Печать  
Z1 писал(а) 23. Декабря 2009 :: 17:54:
ArtInSky писал(а) 23. Декабря 2009 :: 14:50:
Индексы на вью - доп. затраты для сервера.
Чтобы работал поиск по коду и намиенованию нужно патчить bkend убивая хинты оптимизатора. Кстати, и серверу легче будет, поскольку он сам сможет выбирать индекс.

об этом можно подробней.

Открой bkend, например, через WinHex и посмотри содержимое. 1С там хранит шаблоны запросов к SQL-Server. Вместо хинтов вставь пробелы. Наслаждайся Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 
ОтправитьПечать