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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #45 - 20. Августа 2009 :: 12:40
Печать  
chessman писал(а) 20. Августа 2009 :: 12:23:
Можно сами 1C-е таблицы подменять veiw. Все работает, только что попробовал. Единственное, для этого придется отключить верификацию, но это тоже реально.

а что при этом будет с индексами ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #46 - 20. Августа 2009 :: 12:43
Печать  
(JohnyDeath)
Если сделать  две таблицы
и отношение между ними 1:1
то данные уже менеджер не сможет Утащить
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #47 - 20. Августа 2009 :: 12:54
Печать  
Z1 писал(а) 20. Августа 2009 :: 12:40:
chessman писал(а) 20. Августа 2009 :: 12:23:
Можно сами 1C-е таблицы подменять veiw. Все работает, только что попробовал. Единственное, для этого придется отключить верификацию, но это тоже реально.

а что при этом будет с индексами ?


Ну у view тоже можно индексы строить.
А вообще, авторитетно не отвечу, нужно изучать.
« Последняя редакция: 25. Сентября 2009 :: 05:31 - chessman »  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #48 - 20. Августа 2009 :: 12:56
Печать  
Z1 писал(а) 20. Августа 2009 :: 12:43:
chessman писал(а) 20. Августа 2009 :: 11:54:
JohnyDeath писал(а) 19. Августа 2009 :: 07:08:
Да это-то понятно. Есть много способов как псевдоограничить пользователя.
Я к тому что, есть какой-нить манагер, который раздабыл обработку или просто знает как несколькими запросиками перегнать все данные из нужных ему табличек. И никакое ТП или журнал с отбором здесь не спасут.


Все, нашел решение, как это можно сделать...(вспомнил, что давным давно читал о view вот тут - softpoint.ru, это не реклама)
Предположим, что данные будут отражаться в ТП.
Закрываем доступ на всю таблицу(ы) для пользователя. Делаем view, с  условиями отбора для этого пользователя. Открываем доступ на это view, в ТП обращаемся не к таблице(ам), а к view.

мне кажеться надо делать немного по другому две таблицы
и отношение между ними 1:1


Это уже , как душе угодно.
Тогда триггер придется писать?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #49 - 20. Августа 2009 :: 12:56
Печать  
chessman писал(а) 20. Августа 2009 :: 12:54:
Z1 писал(а) 20. Августа 2009 :: 12:40:
chessman писал(а) 20. Августа 2009 :: 12:23:
Можно сами 1C-е таблицы подменять veiw. Все работает, только что попробовал. Единственное, для этого придется отключить верификацию, но это тоже реально.

а что при этом будет с индексами ?


Ну у view тоже можно индексы строить.
А вообще, авторитетно не отвечу, нужно изучать.

так это время сервера.
этим мне и не нравиться view это хорошо когда база не нагружена
иначе лучше и не начинать (ИХМО).
Мое решение не зависит через 2 таблицы не имеет этого недостатка.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #50 - 20. Августа 2009 :: 12:59
Печать  
chessman писал(а) 20. Августа 2009 :: 12:56:
Z1 писал(а) 20. Августа 2009 :: 12:43:
chessman писал(а) 20. Августа 2009 :: 11:54:
JohnyDeath писал(а) 19. Августа 2009 :: 07:08:
Да это-то понятно. Есть много способов как псевдоограничить пользователя.
Я к тому что, есть какой-нить манагер, который раздабыл обработку или просто знает как несколькими запросиками перегнать все данные из нужных ему табличек. И никакое ТП или журнал с отбором здесь не спасут.


Все, нашел решение, как это можно сделать...(вспомнил, что давным давно читал о view вот тут - softpoint.ru, это не реклама)
Предположим, что данные будут отражаться в ТП.
Закрываем доступ на всю таблицу(ы) для пользователя. Делаем view, с  условиями отбора для этого пользователя. Открываем доступ на это view, в ТП обращаемся не к таблице(ам), а к view.

мне кажеться надо делать немного по другому две таблицы
и отношение между ними 1:1


Это уже , как душе угодно.
Тогда триггер придется писать?

необязательно. мне больше нравиться xp   создание
элементов и изменение Важнейших атрибутов  только сотрудники с большими привелегиями.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #51 - 24. Сентября 2009 :: 13:14
Печать  
Тоже занимаюсь вопросами WIN-авторизации. Цель, которую ставили: ограничение доступа пользователей, в том числе и программистов к заданной информации. Сделали win-авторизацию, набросали шаблоны скриптов для view. Есть нестыковка..пока одна Улыбка  разграничение доступа можно использовать как на уровне строк так на уровне колонок. Со строками получилось, а с колонками есть нюанс. Предположим, я хочу скрыть от пользователя значение зарплаты в карточке сотрудника. Затык происходит при записи такой карточки, поскольку не указать эту колонку во view нельзя - вылетит 1С, вывести вместо колонки, предположим ноль можно, но при записи снова вылетит 1С.  Насколько я понимаю, при записи движок перебирает через метаданные все реквизиты записываемого объекта и подставляет их в шаблон скрипта, хранимого в bkend.... Может кто-то работал в этом направлении..чтобы передавать не весь набор колонок, а только то, что нужно? А то решение-то жизнеспособное, но только для просмотраУлыбка
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #52 - 24. Сентября 2009 :: 13:47
Печать  
ArtInSky писал(а) 24. Сентября 2009 :: 13:14:
Тоже занимаюсь вопросами WIN-авторизации. Цель, которую ставили: ограничение доступа пользователей, в том числе и программистов к заданной информации. Сделали win-авторизацию, набросали шаблоны скриптов для view. Есть нестыковка..пока одна Улыбка  разграничение доступа можно использовать как на уровне строк так на уровне колонок. Со строками получилось, а с колонками есть нюанс. Предположим, я хочу скрыть от пользователя значение зарплаты в карточке сотрудника. Затык происходит при записи такой карточки, поскольку не указать эту колонку во view нельзя - вылетит 1С, вывести вместо колонки, предположим ноль можно, но при записи снова вылетит 1С.  Насколько я понимаю, при записи движок перебирает через метаданные все реквизиты записываемого объекта и подставляет их в шаблон скрипта, хранимого в bkend.... Может кто-то работал в этом направлении..чтобы передавать не весь набор колонок, а только то, что нужно? А то решение-то жизнеспособное, но только для просмотраУлыбка

Прочти статью "Быстрые Справочники"
там по моему есть пример как самому написать свой update
и даже как это "скрыть" в конфигурации.
http://www.1cpp.ru/forum/YaBB.pl?num=1152519272

  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

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


они получили информацию только из тех колонок, которые им доступны. Это я реализовал с помощью view.
Задача стоит так: при записи таких таблиц с ограниченным доступом мне нужно, чтобы ОБНОВЛЯЛИСЬ ТОЛЬКО ТЕ колонки,которые им доступны. Написать прямой апдейт не проблема. Проблема, чтобы 1С корректно отрабатывала такой запрос. Конечно, можно все заменить на вызовы методов своих классов, но проект в таком случае станет резиновым по срокам - большая конфигурация
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #54 - 24. Сентября 2009 :: 16:12
Печать  
Кажется, нашел решение. Триггер INSTEAD OF на обновляемое представление. Пробую..
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #55 - 25. Сентября 2009 :: 05:30
Печать  
ArtInSky писал(а) 24. Сентября 2009 :: 16:12:
Кажется, нашел решение. Триггер INSTEAD OF на обновляемое представление. Пробую..


Ждем! Круглые глаза
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #56 - 25. Сентября 2009 :: 05:35
Печать  
ArtInSky писал(а) 24. Сентября 2009 :: 13:14:
Тоже занимаюсь вопросами WIN-авторизации. Цель, которую ставили: ограничение доступа пользователей, в том числе и программистов к заданной информации. Сделали win-авторизацию, набросали шаблоны скриптов для view. Есть нестыковка..пока одна Улыбка  разграничение доступа можно использовать как на уровне строк так на уровне колонок. Со строками получилось, а с колонками есть нюанс. Предположим, я хочу скрыть от пользователя значение зарплаты в карточке сотрудника. Затык происходит при записи такой карточки, поскольку не указать эту колонку во view нельзя - вылетит 1С, вывести вместо колонки, предположим ноль можно, но при записи снова вылетит 1С.  Насколько я понимаю, при записи движок перебирает через метаданные все реквизиты записываемого объекта и подставляет их в шаблон скрипта, хранимого в bkend.... Может кто-то работал в этом направлении..чтобы передавать не весь набор колонок, а только то, что нужно? А то решение-то жизнеспособное, но только для просмотраУлыбка



Можно поподробнее, как сделали.
У меня вот уже 1.5 месяца, как все едет нормально, глюков не замечено.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #57 - 25. Сентября 2009 :: 06:23
Печать  
ArtInSky писал(а) 24. Сентября 2009 :: 15:57:
Андрей, спасибо за информацию. Я работаю с T-SQL достаточно давно. Проблема находится на ДРУГОМ уровне. Я хочу, чтобы даже программисты 1С не имели возможности при помощи тех же прямых запросов получать информацию, которую им не положено видеть. Т.е., даже написав что-то подобное:
Код
Выбрать все
Сет = СоздатьОбъект("ODBCRecordSet");
текст = "
|select * from sc838
|";
ТабИтоги = Сет.ВыполнитьИнструкцию(Текст);
 


они получили информацию только из тех колонок, которые им доступны. Это я реализовал с помощью view.
Задача стоит так: при записи таких таблиц с ограниченным доступом мне нужно, чтобы ОБНОВЛЯЛИСЬ ТОЛЬКО ТЕ колонки,которые им доступны. Написать прямой апдейт не проблема. Проблема, чтобы 1С корректно отрабатывала такой запрос. Конечно, можно все заменить на вызовы методов своих классов, но проект в таком случае станет резиновым по срокам - большая конфигурация

понятно.
но все равно в файле dds должна быть полная информация обо всех колонках всех таблиц базы 1с .
Так что скрыть от всех программистов проблематично.
Вторая проблема  скрыть чтобы эти программисты не получили
достут к базе master и к sp_help и аналогичным.

Тригер по идее должен получиться.Я ни разу не делал тригер на view.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #58 - 29. Сентября 2009 :: 06:44
Печать  
chessman писал(а) 25. Сентября 2009 :: 05:35:
ArtInSky писал(а) 24. Сентября 2009 :: 13:14:
Тоже занимаюсь вопросами WIN-авторизации. Цель, которую ставили: ограничение доступа пользователей, в том числе и программистов к заданной информации. Сделали win-авторизацию, набросали шаблоны скриптов для view. Есть нестыковка..пока одна Улыбка  разграничение доступа можно использовать как на уровне строк так на уровне колонок. Со строками получилось, а с колонками есть нюанс. Предположим, я хочу скрыть от пользователя значение зарплаты в карточке сотрудника. Затык происходит при записи такой карточки, поскольку не указать эту колонку во view нельзя - вылетит 1С, вывести вместо колонки, предположим ноль можно, но при записи снова вылетит 1С.  Насколько я понимаю, при записи движок перебирает через метаданные все реквизиты записываемого объекта и подставляет их в шаблон скрипта, хранимого в bkend.... Может кто-то работал в этом направлении..чтобы передавать не весь набор колонок, а только то, что нужно? А то решение-то жизнеспособное, но только для просмотраУлыбка



Можно поподробнее, как сделали.
У меня вот уже 1.5 месяца, как все едет нормально, глюков не замечено.


Win-авторизацию сделал так, как ты писал.  Только права юзерам порезал. Им совсем ни к чему db_owner. Достаточно db_reader&db_writer на уровне базы данных и db_creator на уровне сервера(поскольку при старте 1С использует alter database)

Защищаемые таблицы обернул view. Фильтрация по строкам - row level security работает. По колонкам - cell level security - не так, как хотелось. Все упирается в поле ROW_ID. 1С инструкции UPDATE/DELETE требуют указания поля ROW_ID, т.е., инструкция выглядит, например, так:
UPDATE SC166(это view)
SET....
WHERE ROW_ID = ...
Соответственно в объявлении view это поле нужно указывать. В в инструкции INSERT, наоборот, это поле должно отсутствовать Улыбка С этим сейчас и борюсь.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #59 - 29. Сентября 2009 :: 07:19
Печать  
да, и касательно win-авторизации..забираем все права на защищаемые таблицы и даем права на исполнение всех х.п.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 6 ... 8
ОтправитьПечать