Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) OFF: windows авторизация на SQL'е (число прочтений - 34549 )
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
OFF: windows авторизация на SQL'е
13. Августа 2009 :: 06:51
Печать  
Кто-нибудь переводил 7-ку на виндовую авторизацию?
Есть желание попробовать, хотелось услышать о глюках.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #1 - 13. Августа 2009 :: 08:57
Печать  
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #2 - 13. Августа 2009 :: 09:41
Печать  
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #3 - 17. Августа 2009 :: 18:40
Печать  
Кажется разобрался.

Для тех, кто читал приведенный выше линк: в предлагаемой схеме меня не устаивало то, что всем пользователям давались права sysadmin. Это сводило на нет всю идею win-авторизации.

Если тема кому-то инетесна-пишите, готов поделиться мыслями. Пока тестирую.
В ближайшее время переведу всех на win-авторизацию.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #4 - 18. Августа 2009 :: 04:15
Печать  
Очень интересна. Прошу поделиться опытом.
  
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #5 - 18. Августа 2009 :: 07:45
Печать  
Расскажу подробно, как я делал. Может кто оптимизирует.

Часть I.

1. Правим BKEnd.dll, как описано в линке выше.
Изначально


Правим на



2. Как было написано в источнике 1С очень хитро работает с табличкой _1SCONNECT.
В профайлере видно, что она ее удаляет, потом заново создает с каким-то UUID. И все это происходит в момент входа первого пользователя. Я не знаю точно, но как мне кажется 1С-ка связывает этот UUID c  каталогом, где лежит MD-шник. Если я не прав, пусть меня поправят. Для входа следующих пользователей она сверяет этот UUID с тем, который лежит в _1SCONNECT.
Но тут возникает проблема - 1С-ка смотрит табличку, соответствующую текущему пользователю

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #6 - 18. Августа 2009 :: 07:54
Печать  
Часть II.

1.Смотрим в профайлере, какой запрос уходит на сервер для всех пользователей...ищем его в BKEnd.dll  Ужас



Правим его



Собственно на месте запроса, вставляем вызов функции и хранимой процедуры. Их нам предстоит еще написать... Очень довольный
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #7 - 18. Августа 2009 :: 08:01
Печать  
Часть III.
Пишем функцию - туда мы копируем тот запрос, вместо которого мы  вставили наши вызовы.  

Функция:

Код
Выбрать все
CREATE FUNCTION huy()
RETURNS int
AS
BEGIN

	DECLARE @res int

	Select @res = COUNT(*) from master..sysprocesses where dbid=DB_ID('_Proba1') and program_name='1CV7'

	RETURN @res
END
 




Пишем хранимую процедуру:

Код
Выбрать все
CREATE PROCEDURE [dbo].[huy1]
AS
BEGIN
	SET NOCOUNT ON;

	if dbo.huy() = 1 -- Для первого юзера очищаем все таблицы _1sconnect и выходим
		Begin
			exec SP_MSforeachtable @command1 = 'Delete from ? ', @whereand = ' and o.name = ''_1sconnect'' '
			Return
		End

	declare @res char(36)
	declare @curuser varchar(200)

	Set @curuser = CURRENT_USER

	-- для последующих юзеров - собираем во временную таблицу все UUID cо всех таблиц _1sconnect
	-- по идее это UUID должен быть не пустым только в какой-то одной - соответствующей первому пожключению

	Create table #_1SProba (CONNECTUUID char(36) not null)
	execute SP_MSforeachtable @command1='insert #_1SProba Select * from ?', @whereand=' and o.name = ''_1sconnect'''
	select top 1 @res = CONNECTUUID from #_1sproba

	If exists (select * from sysobjects where id = object_id(@curuser + '._1SCONNECT') and sysstat & 0xf = 3)
		-- наверное это можно не делать, ну на всякий пожарный почистим
		exec ('Delete from ' + @curuser + '._1SCONNECT')
	else
		Create table _1SCONNECT (CONNECTUUID char(36) not null)

	-- вставляем найденный UUID в "родной" _1sconnect
	exec ('insert ' + @curuser + '._1SCONNECT VALUES(''' + @res + ''')')
END
GO
 



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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #8 - 18. Августа 2009 :: 08:10
Печать  
Часть IV.

Прописываем SQL-х пользователей, выдаем роли db_owner.

В параметрах коннекта в 1С нужно обязательно оставить SQL-льного пользователя, например sa. Пароль конечно удаляем.

Вроде все.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #9 - 18. Августа 2009 :: 08:16
Печать  
Огромное спасибо!
А нельзя ли в личку патченую bkend.dll?
leshik@stav1c.ru
  
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #10 - 18. Августа 2009 :: 08:22
Печать  
Можно, только у меня BKEnd пропатчен был предварительно вот этим
http://infostart.ru/projects/739/?p=3

  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #11 - 18. Августа 2009 :: 08:34
Печать  
Согласен Улыбка
  
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #12 - 18. Августа 2009 :: 09:44
Печать  
Маленькое исправление:

Код
Выбрать все
CREATE FUNCTION huy()
RETURNS int
AS
BEGIN

	DECLARE @res int

	Select @res = COUNT(*) from master..sysprocesses where dbid=DB_ID(DB_NAME()) and program_name='1CV7'

	RETURN @res
END 

  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #13 - 18. Августа 2009 :: 11:50
Печать  
А имя хранимки по какому принципу выбирал? Смех
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #14 - 18. Августа 2009 :: 11:54
Печать  
JohnyDeath писал(а) 18. Августа 2009 :: 11:50:
А имя хранимки по какому принципу выбирал? Смех


Честна сказать по принципу "заговОра".
Когда долго ничего не получается, начинаешь злиться, ну и называешь таким образом переменные, функции....обычно помогает  Очень довольный
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #15 - 18. Августа 2009 :: 11:58
Печать  
А это всё надо только для того, чтобы "получить имя пользователя, который занимает много процессорного времени SQL-Server"? Или преследовались еще какие-то цели?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #16 - 18. Августа 2009 :: 12:00
Печать  
Я преследовал только одну - SQL - авторизацию.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #17 - 18. Августа 2009 :: 12:02
Печать  
А зачем? Я правда не понимаю.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #18 - 18. Августа 2009 :: 12:11
Печать  
Только для повышения уровня защиты и стандартизации.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #19 - 18. Августа 2009 :: 12:25
Печать  
И каким образом повысится уровень защиты? Пользователь также может считать все данные. Что изменилось?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #20 - 18. Августа 2009 :: 12:37
Печать  
В этом плане все осталось по прежнему.
Но согласись, сейчас пароль на базу вообще лежит в открытом виде.

На мой взгляд управлять правами стало проще, особенно, когда много баз.
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #21 - 18. Августа 2009 :: 12:37
Печать  
JohnyDeath писал(а) 18. Августа 2009 :: 12:25:
И каким образом повысится уровень защиты? Пользователь также может считать все данные. Что изменилось?

Ну это просто автор не стал дальше углуб##ться в права пользователей в SQL, а на самом деле дальше открываются очень большие горизонты.
Вот мне например это нужно для шифрования БД средствами самого SQL.
  
Наверх
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #22 - 18. Августа 2009 :: 13:04
Печать  
JohnyDeath писал(а) 18. Августа 2009 :: 12:25:
И каким образом повысится уровень защиты? Пользователь также может считать все данные. Что изменилось?

Почему ведь к некоторым таблицам ( конкретным видам документов и/или справочников) некоторым группам пользователей можно вообще закрыть доспут даже на чтение
Также в профайлере будет видна ФИО конкретного сотрудника
а не только номер id_sql а по этой информации уже можно много чего сделать.
Также можно ограничить сотрудников и по разным базам данных средствами sql.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #23 - 18. Августа 2009 :: 13:06
Печать  
leshik писал(а) 18. Августа 2009 :: 12:37:
JohnyDeath писал(а) 18. Августа 2009 :: 12:25:
И каким образом повысится уровень защиты? Пользователь также может считать все данные. Что изменилось?

Ну это просто автор не стал дальше углуб##ться в права пользователей в SQL, а на самом деле дальше открываются очень большие горизонты.
Вот мне например это нужно для шифрования БД средствами самого SQL.

Можно про шифрацию подробней.
Что имеется в ввиду ?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #24 - 18. Августа 2009 :: 13:06
Печать  
leshik писал(а) 18. Августа 2009 :: 12:37:
Вот мне например это нужно для шифрования БД средствами самого SQL.

Это, как я понимаю, поможет только от копирования базы целиком (мдф-файла), так? Из 1С-то всё равно можно получить все записи всех таблиц текущей БД
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #25 - 18. Августа 2009 :: 13:18
Печать  
Z1 писал(а) 18. Августа 2009 :: 13:04:
JohnyDeath писал(а) 18. Августа 2009 :: 12:25:
И каким образом повысится уровень защиты? Пользователь также может считать все данные. Что изменилось?

Почему ведь к некоторым таблицам ( конкретным видам документов и/или справочников) некоторым группам пользователей можно вообще закрыть доспут даже на чтение
Также в профайлере будет видна ФИО конкретного сотрудника
а не только номер id_sql а по этой информации уже можно много чего сделать.
Также можно ограничить сотрудников и по разным базам данных средствами sql.



По-моему не получится, т.к. пользователю выдается роль db_owner.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #26 - 18. Августа 2009 :: 13:36
Печать  
JohnyDeath писал(а) 18. Августа 2009 :: 13:06:
leshik писал(а) 18. Августа 2009 :: 12:37:
Вот мне например это нужно для шифрования БД средствами самого SQL.

Это, как я понимаю, поможет только от копирования базы целиком (мдф-файла), так? Из 1С-то всё равно можно получить все записи всех таблиц текущей БД

как раз вообще закроет доступ к таблице
напимер Закрыв Для менеджеров  Док Списание не один
менеджер не сможет "унести" таблицу dh dt по документу Списание.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #27 - 18. Августа 2009 :: 13:37
Печать  
chessman писал(а) 18. Августа 2009 :: 13:18:
Z1 писал(а) 18. Августа 2009 :: 13:04:
JohnyDeath писал(а) 18. Августа 2009 :: 12:25:
И каким образом повысится уровень защиты? Пользователь также может считать все данные. Что изменилось?

Почему ведь к некоторым таблицам ( конкретным видам документов и/или справочников) некоторым группам пользователей можно вообще закрыть доспут даже на чтение
Также в профайлере будет видна ФИО конкретного сотрудника
а не только номер id_sql а по этой информации уже можно много чего сделать.
Также можно ограничить сотрудников и по разным базам данных средствами sql.



По-моему не получится, т.к. пользователю выдается роль db_owner.

надо пробовать
Даже если не получиться Все равно пароль ыф не виден
+ Легче обнаруживать кто грузит тяжелыми запросами базу.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #28 - 18. Августа 2009 :: 15:02
Печать  
Поигрался c db_owner'ом - похоже можно и без него, нужно убрать еще строку в BKEnd, и выдать права на хранимые процедуры и функции.

Во всяком случае в 1С-ку войти удалось.
Будем дальше мучить Язык
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #29 - 18. Августа 2009 :: 17:01
Печать  
Чаще всего надо закрывать доступ к конкретным запис_м одной таблицы (например, дл_ манагера - только его реализацию и заказы). А этого все равно никак не добьёшьс_. Или йа не прав?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #30 - 19. Августа 2009 :: 04:29
Печать  
JohnyDeath писал(а) 18. Августа 2009 :: 17:01:
Чаще всего надо закрывать доступ к конкретным запис_м одной таблицы (например, дл_ манагера - только его реализацию и заказы). А этого все равно никак не добьёшьс_. Или йа не прав?

Ну это не спасет если менеджер захочет "спереть" таблицу целиком.
У меня сделано журнал счетов менеджеру открывается только по
отбору (стандартный 1с отбор в журнале док ) только на  себе или по конкретному клиенту ( причем
клиент либо принадлежит этому менеджеру либо клиент не принадлежит никому из менеджеров )
Реестр счетов менеджер также может строить только по себе.
Используя ТП ( вместо журналов 1с ) можно как хочешь ограничить.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #31 - 19. Августа 2009 :: 07:08
Печать  
Да это-то понятно. Есть много способов как псевдоограничить пользователя.
Я к тому что, есть какой-нить манагер, который раздабыл обработку или просто знает как несколькими запросиками перегнать все данные из нужных ему табличек. И никакое ТП или журнал с отбором здесь не спасут.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

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


так авторизация sql не позволит скинуть другие таблицы
к которым нет доступа
или если есть только select менеджер не сможет изменить,удалить
данные в каких-то таблицах.
Пример из моей конф :
Т.е. менеджер уже никогда не сможет слить документы Платежка,БанковскаяВыписка.
Это все таки шаг вперед по защите базы.

Опять же под sa "ушлый" менеджер имеет
доступ ко всем базам которые
расположены на sql сервере.
В варианте с авторизацией только к тем базам какие ему разрешены.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #33 - 19. Августа 2009 :: 07:28
Печать  
Z1 писал(а) 19. Августа 2009 :: 07:21:
Опять же под sa "ушлый" менеджер имеет
доступ ко всем базам которые
расположены на sql сервере.
В варианте с авторизацией только к тем базам какие ему разрешены.


Ну это не совсем так - заведи несколько sql-х логинов, для каждой базы свой. У меня 20 баз, и честна, в лом для каждой делать свой логин.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #34 - 19. Августа 2009 :: 07:30
Печать  
Кстати, уже всех перевел на win-авторизацию и поправил классы, где были строки соединения с использованием sql-ой авторизации Подмигивание
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #35 - 19. Августа 2009 :: 07:50
Печать  
Z1 писал(а) 19. Августа 2009 :: 07:21:
так авторизация sql не позволит скинуть другие таблицы
к которым нет доступа
или если есть только select менеджер не сможет изменить,удалить
данные в каких-то таблицах.
Пример из моей конф :
Т.е. менеджер уже никогда не сможет слить документы Платежка,БанковскаяВыписка.

А нафига манагеру изменять/удалять данные? Ему надо просто стырить инфу и продать конкуренту. К тому же выписки и платежки ему тоже по большому счету не нужны. Все что ему надо - документы реализации и все, что с ним связано: контрагенты, цены и т.п. Ко всем этим табличкам доступ у него есть. Возможно, ему также будет интересно поступление товара. Если к этой табличке у него нет доступа, он может скопировать регистр, где содержится вся инфа по поступлениям товаров и их ценам. К регистру-то доступ не закроешь.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #36 - 19. Августа 2009 :: 09:15
Печать  
С правами доступа разобрался. Нужно только поправить BKEnd, тогда пользователю можно оставить роли db_datareader, db_datawriter.

Поигрался с правами доступа до таблиц.
Все реально, но если что-то запретить, то 1С-ка будет вылетать с SQL-ой ошибкой.
Честна сказать, не знаю пока, как это можно реально использовать у себя, если только запретить, например удаление объектов. В данном случае уже точно удалить не получится, даже из внешних обработок.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #37 - 19. Августа 2009 :: 09:22
Печать  
JohnyDeath писал(а) 19. Августа 2009 :: 07:50:
Z1 писал(а) 19. Августа 2009 :: 07:21:
так авторизация sql не позволит скинуть другие таблицы
к которым нет доступа
или если есть только select менеджер не сможет изменить,удалить
данные в каких-то таблицах.
Пример из моей конф :
Т.е. менеджер уже никогда не сможет слить документы Платежка,БанковскаяВыписка.

А нафига манагеру изменять/удалять данные? Ему надо просто стырить инфу и продать конкуренту. К тому же выписки и платежки ему тоже по большому счету не нужны. Все что ему надо - документы реализации и все, что с ним связано: контрагенты, цены и т.п. Ко всем этим табличкам доступ у него есть. Возможно, ему также будет интересно поступление товара. Если к этой табличке у него нет доступа, он может скопировать регистр, где содержится вся инфа по поступлениям товаров и их ценам. К регистру-то доступ не закроешь.

В регистрах ОстаткиТоваров цен нет по крайней мере у меня.
Смотри закрываем менеджерам  доступ к документам Прих, Расход Накладные,
Закрываем менеджерам  доступ к Регистру остатки Товаров.
Отчет Реестр накладных для менеджеров в нужном объеме переписываем через xp ( хранимая процедура ).
Все менеджеры не получат никак доступ к sql таблицам Накладным и при этом смогут работать в рамках их полномочий.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #38 - 19. Августа 2009 :: 09:34
Печать  
Что-то у нас менеджеры получаются слишком умными, пора им в программисты  Смех
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #39 - 19. Августа 2009 :: 09:39
Печать  
chessman писал(а) 19. Августа 2009 :: 09:34:
Что-то у нас менеджеры получаются слишком умными, пора им в программисты  Смех

Да не менеджеры умные а умные те кому нужны эти данные
или они найдут умных кто им поможет эти данные получить.
Вечная проблема сыщик и воры
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #40 - 19. Августа 2009 :: 09:56
Печать  
Я сейчас подумал, что если, например в базе есть табличка (кстати не обязательно 1с-я) с конфиденциальной инфой, то вот в этом случае, авторизация сильно поможет.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #41 - 19. Августа 2009 :: 10:00
Печать  
chessman писал(а) 19. Августа 2009 :: 09:56:
Я сейчас подумал, что если, например в базе есть табличка (кстати не обязательно 1с-я) с конфиденциальной инфой, то вот в этом случае, авторизация сильно поможет.

sql сервер вообще не знает табличка 1с-ная или нет  Улыбка
для него главное есть или нет права  доступа
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #42 - 19. Августа 2009 :: 10:20
Печать  
Z1 писал(а) 19. Августа 2009 :: 10:00:
chessman писал(а) 19. Августа 2009 :: 09:56:
Я сейчас подумал, что если, например в базе есть табличка (кстати не обязательно 1с-я) с конфиденциальной инфой, то вот в этом случае, авторизация сильно поможет.

sql сервер вообще не знает табличка 1с-ная или нет  Улыбка
для него главное есть или нет права  доступа


Я просто к тому, что 1С про них не знает, а значит не будет вылетать, если наложены какие-то ограничения.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



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


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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #44 - 20. Августа 2009 :: 12:23
Печать  
Можно сами 1C-е таблицы подменять veiw. Все работает, только что попробовал. Единственное, для этого придется отключить верификацию, но это тоже реально.
  
Наверх
 
IP записан
 
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 записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #60 - 29. Сентября 2009 :: 08:53
Печать  
ArtInSky писал(а) 29. Сентября 2009 :: 06:44:
Win-авторизацию сделал так, как ты писал.  Только права юзерам порезал. Им совсем ни к чему db_owner. Достаточно db_reader&db_writer на уровне базы данных и db_creator на уровне сервера(поскольку при старте 1С использует alter database).


Я здесь вроде писал, что сделал win-авторизации под правами db_reader&db_writer, так что db_creator тоже не нужен.

Честна сказать, у себя я всё переделал, дал нормальные человеческие имена хранимым процедурам + создал пару вспомогательных хранимок для раздачи прав после изменений в БД и добавления нового юзера.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #61 - 29. Сентября 2009 :: 08:57
Печать  
chessman писал(а) 29. Сентября 2009 :: 08:53:
ArtInSky писал(а) 29. Сентября 2009 :: 06:44:
Win-авторизацию сделал так, как ты писал.  Только права юзерам порезал. Им совсем ни к чему db_owner. Достаточно db_reader&db_writer на уровне базы данных и db_creator на уровне сервера(поскольку при старте 1С использует alter database).


Я здесь вроде писал, что сделал win-авторизации под правами db_reader&db_writer, так что db_creator тоже не нужен.

Честна сказать, у себя я всё переделал, дал нормальные человеческие имена хранимым процедурам + создал пару вспомогательных хранимок для раздачи прав после изменений в БД и добавления нового юзера.


Наверное, невнимательно прочитал, сорри.
Ты view использовал для ограничения доступа?
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #62 - 29. Сентября 2009 :: 09:02
Печать  
Честна сказать нет, у меня нет такой необходимости. Я все это делал только ради наработок на будущее. Но вообще мне эта тема очень интересна.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #63 - 29. Сентября 2009 :: 09:18
Печать  
chessman писал(а) 29. Сентября 2009 :: 09:02:
Честна сказать нет, у меня нет такой необходимости. Я все это делал только ради наработок на будущее. Но вообще мне эта тема очень интересна.


Нда, снова один Улыбка
Борюсь с инсертом на view. Как только что выйдет - маякну.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #64 - 29. Сентября 2009 :: 09:56
Печать  
ArtInSky писал(а) 29. Сентября 2009 :: 09:18:
chessman писал(а) 29. Сентября 2009 :: 09:02:
Честна сказать нет, у меня нет такой необходимости. Я все это делал только ради наработок на будущее. Но вообще мне эта тема очень интересна.


Нда, снова один Улыбка
Борюсь с инсертом на view. Как только что выйдет - маякну.


Вообще, я делать view с отбором элементов, все вроде работатет, справочник виден, элементы можешь создавать/изменять.
В чем у тебя затык?
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #65 - 29. Сентября 2009 :: 11:43
Печать  
chessman писал(а) 29. Сентября 2009 :: 09:56:
ArtInSky писал(а) 29. Сентября 2009 :: 09:18:
chessman писал(а) 29. Сентября 2009 :: 09:02:
Честна сказать нет, у меня нет такой необходимости. Я все это делал только ради наработок на будущее. Но вообще мне эта тема очень интересна.


Нда, снова один Улыбка
Борюсь с инсертом на view. Как только что выйдет - маякну.


Вообще, я делать view с отбором элементов, все вроде работатет, справочник виден, элементы можешь создавать/изменять.
В чем у тебя затык?


У меня не работает ограничение видомости колонок. Я регулирую видимость в предикате SELECT view. Все уперлось в ROW_ID. Это поле не должно фигурировать во view из-за свойства identity (при вставке поле не должно стоять в списке колонок). Но, в таком случае не проходит, например, инструкция "Спр.НайтиПоКоду()" (в профайлере она выглядит как:
select * from SC838(NOLOCK)            where CODE='artinsky        ' order by CODE
). В менеджмент студио запрос выполняется на ура.
Самое смешное, что данная ошибка уходит, если проиндексировать view(т.е., создать такие же индексы, как и у защищаемой таблицы), а индексы view базируются все на том же ROW_ID. Какой-то замкнутый круг. Используешь ROW_ID во вью - селект не проходит, не используешь - найти по коду не проходит.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

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


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

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

Тригер по идее должен получиться.Я ни разу не делал тригер на view.


Улыбка Так и пускай себе видят структуру мд. SQL лежит на уровень ниже. Перед исполнение любого sQL запроса на стороне сервера будт производиться контроль прав и фильтрация данных. Как уже здесь говорилось, у каждого свой логин. Мы ассоциируем его с теми базами, которыми нам нужно. Не хотим пускать программиста к мастера, так и не надо.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #67 - 29. Сентября 2009 :: 12:17
Печать  
ArtInSky писал(а) 29. Сентября 2009 :: 11:43:
Самое смешное, что данная ошибка уходит, если проиндексировать view(т.е., создать такие же индексы, как и у защищаемой таблицы), а индексы view базируются все на том же ROW_ID. Какой-то замкнутый круг. Используешь ROW_ID во вью - селект не проходит, не используешь - найти по коду не проходит.


А как ты индексы создаешь у view? В студии есть такой пункт, но сколько я не пробовал нифига не получается.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #68 - 29. Сентября 2009 :: 13:10
Печать  
chessman писал(а) 29. Сентября 2009 :: 12:17:
ArtInSky писал(а) 29. Сентября 2009 :: 11:43:
Самое смешное, что данная ошибка уходит, если проиндексировать view(т.е., создать такие же индексы, как и у защищаемой таблицы), а индексы view базируются все на том же ROW_ID. Какой-то замкнутый круг. Используешь ROW_ID во вью - селект не проходит, не используешь - найти по коду не проходит.


А как ты индексы создаешь у view? В студии есть такой пункт, но сколько я не пробовал нифига не получается.

В sql200 индексы на view можно делать только в версии Enterprice Edition
В sql2005 индексы на view можно делать в любой редакции.
Если мы хотим индексировать представление то обязательно должен быть кластерный индекс на представление.
После этого можно создать еще другой индекс на view.
Для создание индекса в  view должно быть создано с опцией SCHEMABINDIDING
Код
Выбрать все
ALTER VIEW zzz WITH SCHEMABINDIDING AS ...
 

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


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #69 - 29. Сентября 2009 :: 13:14
Печать  
Z1 писал(а) 29. Сентября 2009 :: 13:10:
chessman писал(а) 29. Сентября 2009 :: 12:17:
ArtInSky писал(а) 29. Сентября 2009 :: 11:43:
Самое смешное, что данная ошибка уходит, если проиндексировать view(т.е., создать такие же индексы, как и у защищаемой таблицы), а индексы view базируются все на том же ROW_ID. Какой-то замкнутый круг. Используешь ROW_ID во вью - селект не проходит, не используешь - найти по коду не проходит.


А как ты индексы создаешь у view? В студии есть такой пункт, но сколько я не пробовал нифига не получается.

В sql200 индексы на view можно делать только в версии Enterprice Edition
В sql2005 индексы на view можно делать в любой редакции.
Если мы хотим индексировать представление то обязательно должен быть кластерный индекс на представление.
После этого можно создать еще другой индекс на view.
Для создание индекса в  view должно быть создано с опцией SCHEMABINDIDING
Код
Выбрать все
ALTER VIEW zzz WITH SCHEMABINDIDING AS ...
 


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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #70 - 29. Сентября 2009 :: 13:22
Печать  
Z1 писал(а) 29. Сентября 2009 :: 13:10:
В sql200 индексы на view можно делать только в версии Enterprice Edition


Вот облом  Печаль
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #71 - 29. Сентября 2009 :: 13:23
Печать  
chessman писал(а) 29. Сентября 2009 :: 13:22:
Z1 писал(а) 29. Сентября 2009 :: 13:10:
В sql200 индексы на view можно делать только в версии Enterprice Edition


Вот облом  Печаль

Ставь 2005 Подмигивание
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #72 - 29. Сентября 2009 :: 13:29
Печать  
JohnyDeath писал(а) 29. Сентября 2009 :: 13:23:
chessman писал(а) 29. Сентября 2009 :: 13:22:
Z1 писал(а) 29. Сентября 2009 :: 13:10:
В sql200 индексы на view можно делать только в версии Enterprice Edition


Вот облом  Печаль

Ставь 2005 Подмигивание


Его покупать нада  Улыбка.
Эх, может дома Enterprice стоит  Круглые глаза
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #73 - 29. Сентября 2009 :: 13:30
Печать  
chessman писал(а) 29. Сентября 2009 :: 13:22:
Z1 писал(а) 29. Сентября 2009 :: 13:10:
В sql200 индексы на view можно делать только в версии Enterprice Edition


Вот облом  Печаль

Переходи на 2005.
В нем много улучшений и sp3 2005 c 1c77 нет проблем.
хотя сами сидим на sql200. с 2005 все отладил на одном филиале
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #74 - 29. Сентября 2009 :: 13:31
Печать  
chessman писал(а) 29. Сентября 2009 :: 13:29:
Его покупать нада  Улыбка.

Не обязательно
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #75 - 29. Сентября 2009 :: 13:33
Печать  
JohnyDeath писал(а) 29. Сентября 2009 :: 13:31:
chessman писал(а) 29. Сентября 2009 :: 13:29:
Его покупать нада  Улыбка.

Не обязательно


Раньше вроде ограничение на размер базы было?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #76 - 29. Сентября 2009 :: 13:38
Печать  
chessman писал(а) 29. Сентября 2009 :: 13:22:
Z1 писал(а) 29. Сентября 2009 :: 13:10:
В sql200 индексы на view можно делать только в версии Enterprice Edition


Вот облом  Печаль


Цитата:
Note Indexed views can be created in any edition of SQL Server 2000. In SQL Server 2000 Enterprise Edition, the query optimizer will automatically consider the indexed view. To use an indexed view in all other editions, the NOEXPAND hint must be used.

© BOL
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #77 - 29. Сентября 2009 :: 13:45
Печать  
chessman писал(а) 29. Сентября 2009 :: 13:33:
JohnyDeath писал(а) 29. Сентября 2009 :: 13:31:
chessman писал(а) 29. Сентября 2009 :: 13:29:
Его покупать нада  Улыбка.

Не обязательно


Раньше вроде ограничение на размер базы было?

Да, вроде и щас есть в 4 Гб http://technet.microsoft.com/ru-ru/library/ms165672(SQL.90).aspx
(там же увидел, что ОЗУ ограничено в 1 Гб  Печаль )

Только я где-то краем глаза читал, что можно заливать базу, например в 3,5 Гб, а потом неограниченно наращиваться. Или я не так прочитал? Кто-нибудь из знающих опровергните или подтвердите.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #78 - 29. Сентября 2009 :: 20:36
Печать  
berezdetsky писал(а) 29. Сентября 2009 :: 13:38:
Цитата:
Note Indexed views can be created in any edition of SQL Server 2000. In SQL Server 2000 Enterprise Edition, the query optimizer will automatically consider the indexed view. To use an indexed view in all other editions, the NOEXPAND hint must be used.

© BOL


Отличная новость!

Жаль, что там куча ограничений на создание индекса, особенно неприятно вот это

Код
Выбрать все
The view cannot include text, ntext, or image columns, even if they are not referenced in the CREATE INDEX statement. 

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



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #79 - 30. Сентября 2009 :: 06:22
Печать  
У меня пока только один вариант есть, как решить проблему с Справочник::НайтиПоКоду -  использовать класс наследник от Справочника, где переопределить этот метод.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #80 - 30. Сентября 2009 :: 07:24
Печать  
chessman писал(а) 30. Сентября 2009 :: 06:22:
У меня пока только один вариант есть, как решить проблему с Справочник::НайтиПоКоду -  использовать класс наследник от Справочника, где переопределить этот метод.

Теоретически для тех пользователей на кого Вы накладываете ограничения Вообще не должно быть НайтиПоКоду ( может лучше
копать в этом направлении ),
но на практике все гораздо сложнее и не всегда можно переделать.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #81 - 30. Сентября 2009 :: 07:47
Печать  
Z1 писал(а) 30. Сентября 2009 :: 07:24:
chessman писал(а) 30. Сентября 2009 :: 06:22:
У меня пока только один вариант есть, как решить проблему с Справочник::НайтиПоКоду -  использовать класс наследник от Справочника, где переопределить этот метод.

Теоретически для тех пользователей на кого Вы накладываете ограничения Вообще не должно быть НайтиПоКоду ( может лучше
копать в этом направлении ),
но на практике все гораздо сложнее и не всегда можно переделать.

Спасибо.  Я тоже об этом подумал. Пока не хочется заморачиваться с классами. Поднял топик здесь:
http://sql.ru/forum/actualthread.aspx?tid=699664
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #82 - 30. Сентября 2009 :: 07:49
Печать  
Z1 писал(а) 30. Сентября 2009 :: 07:24:
chessman писал(а) 30. Сентября 2009 :: 06:22:
У меня пока только один вариант есть, как решить проблему с Справочник::НайтиПоКоду -  использовать класс наследник от Справочника, где переопределить этот метод.

Теоретически для тех пользователей на кого Вы накладываете ограничения Вообще не должно быть НайтиПоКоду ( может лучше
копать в этом направлении ),
но на практике все гораздо сложнее и не всегда можно переделать.

Почему не должно?
В том то и притягательность решения. Оставить среду интерпретатора в неведении, чтобы все ее методы исполнялись на ура.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #83 - 30. Сентября 2009 :: 07:53
Печать  
Зря ты на счет классов, это же фундаментальная вещь, а в данном случае вообще все просто будет.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #84 - 30. Сентября 2009 :: 07:58
Печать  
ArtInSky писал(а) 30. Сентября 2009 :: 07:49:
Z1 писал(а) 30. Сентября 2009 :: 07:24:
chessman писал(а) 30. Сентября 2009 :: 06:22:
У меня пока только один вариант есть, как решить проблему с Справочник::НайтиПоКоду -  использовать класс наследник от Справочника, где переопределить этот метод.

Теоретически для тех пользователей на кого Вы накладываете ограничения Вообще не должно быть НайтиПоКоду ( может лучше
копать в этом направлении ),
но на практике все гораздо сложнее и не всегда можно переделать.

Почему не должно?
В том то и притягательность решения. Оставить среду интерпретатора в неведении, чтобы все ее методы исполнялись на ура.

Вы не поняли меня. Моя мысль надо стремиться вообще избавляться от таких операторов (НайтиПоКоду).
Если уж совсем никак сделайте метод найти_по_id или глоб функцию и замените все НайтиПоКоду на найти_по_id

Пример Если у Вас есть даже  уникальность по коду справочника и база УРБД то создав сразу два новых элемента с одним кодом в разных ПБ у Вас так и будет два элемента с одним кодом.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #85 - 30. Сентября 2009 :: 08:30
Печать  
chessman писал(а) 30. Сентября 2009 :: 07:53:
Зря ты на счет классов, это же фундаментальная вещь, а в данном случае вообще все просто будет.


Ни в коей мере не умаляю красоту решения. Просто рою до последнего.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #86 - 30. Сентября 2009 :: 08:55
Печать  
ArtInSky писал(а) 30. Сентября 2009 :: 08:30:
chessman писал(а) 30. Сентября 2009 :: 07:53:
Зря ты на счет классов, это же фундаментальная вещь, а в данном случае вообще все просто будет.


Ни в коей мере не умаляю красоту решения. Просто рою до последнего.


Так держать!!!  Подмигивание
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #87 - 05. Октября 2009 :: 03:42
Печать  
Вот увидел пересекающуюся тему на SQL.ru - может автор тем один и тот же?
http://sql.ru/forum/actualthread.aspx?tid=700362
  
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #88 - 05. Октября 2009 :: 08:14
Печать  
leshik писал(а) 05. Октября 2009 :: 03:42:
Вот увидел пересекающуюся тему на SQL.ru - может автор тем один и тот же?
http://sql.ru/forum/actualthread.aspx?tid=700362


Это не я  Круглые глаза
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #89 - 27. Октября 2009 :: 08:31
Печать  
leshik писал(а) 05. Октября 2009 :: 03:42:
Вот увидел пересекающуюся тему на SQL.ru - может автор тем один и тот же?
http://sql.ru/forum/actualthread.aspx?tid=700362


это я
  
Наверх
 
IP записан
 
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 записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #105 - 28. Декабря 2009 :: 15:35
Печать  
chessman писал(а) 25. Декабря 2009 :: 20:16:
ArtInSky, можно поподробнее, как ты все-таки реализовал у себя - с индексированными view  или с дополнительным патчем bkend?


Я не вижу необходимости в создании индексов. Может недостаточно исследовал этот вопрос. Насколько я помню, даже создав индексы, но не пропатчив bkend 1Cбудет вылетать на инструкциях типа "НайтиПоКоду()". Так что, первое необязательно, имхо, и решается индивидуально, а второе весьма желательно)
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #106 - 28. Декабря 2009 :: 16:23
Печать  
Кстати, вот выдержка из MSDN относительно конструирования индексированных представлений:
"Индексы представлений могут дать значительное улучшение производительности, если представление содержит агрегаты, объединения таблиц или сочетание того и другого. Необязательно явно ссылаться в запросе на представление, чтобы его мог использовать оптимизатор запросов. Дополнительные сведения см. в разделе Конструирование индексированных представлений."

А поскольку представления для 1С должны быть модифицируемыми(без агрегатов и ссылок на другие таблицы, вычисляемые столбцы),то ответ напрашивается сам собой )
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

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

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

Открой bkend, например, через WinHex и посмотри содержимое. 1С там хранит шаблоны запросов к SQL-Server. Вместо хинтов вставь пробелы. Наслаждайся Улыбка

Вы имеете ввиду неккоректное построение  списка справочника с папками при сортировке по реквизиту т.е есть запрос

Select * from SC838(NOLOCK INDEX=VIP2269) where PARENTID=@P1 order by PARENTID,ISFOLDER, SP2269, ROW_ID

а индекс VIP2269 = SP2269, ROW_ID
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

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

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

Открой bkend, например, через WinHex и посмотри содержимое. 1С там хранит шаблоны запросов к SQL-Server. Вместо хинтов вставь пробелы. Наслаждайся Улыбка

Вы имеете ввиду неккоректное построение  списка справочника с папками при сортировке по реквизиту т.е есть запрос

Select * from SC838(NOLOCK INDEX=VIP2269) where PARENTID=@P1 order by PARENTID,ISFOLDER, SP2269, ROW_ID

а индекс VIP2269 = SP2269, ROW_ID


Я проверял методы "НайтиПоКоду,НайтиПоНаименованию". Полагаю, с методом "НайтиПоРеквизиту" ситуация аналогична.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #109 - 21. Января 2010 :: 08:22
Печать  
ArtInSky, у тебя задача с авторизацией взлетела в полном объеме, в боевом режиме сейчас что-то работает?
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #110 - 28. Января 2010 :: 13:21
Печать  
В боевом пока нет. Готовимся к внедрению.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: OFF: windows авторизация на SQL'е
Ответ #111 - 28. Января 2010 :: 13:35
Печать  
ArtInSky писал(а) 28. Января 2010 :: 13:21:
В боевом пока нет. Готовимся к внедрению.


Держи, пожалуйста в курсе, мне тема очень интересна.

ЗЫ: как ты отключил верификацию? Раньше решение было на софтпоинте, сейчас все убрали.
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #112 - 09. Февраля 2010 :: 15:25
Печать  
Ок.
Например, наедь на 1С патчером Соарона. Там есть опция "Отключить верификацию"
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: OFF: windows авторизация на SQL'е
Ответ #113 - 10. Апреля 2010 :: 07:05
Печать  
chessman писал(а) 28. Января 2010 :: 13:35:
ArtInSky писал(а) 28. Января 2010 :: 13:21:
В боевом пока нет. Готовимся к внедрению.


Держи, пожалуйста в курсе, мне тема очень интересна.

ЗЫ: как ты отключил верификацию? Раньше решение было на софтпоинте, сейчас все убрали.


Держу в курсе Улыбка
Запустился.
Защищается порядка 8 документов, 3-х справочников, некоторая периодика из _1sconst. Плюс, при попытке провести, отменить проведение, пометить на удаление документ SQL выполняет откат транзакции. Вкратце так)
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: OFF: windows авторизация на SQL'е
Ответ #114 - 11. Апреля 2010 :: 19:53
Печать  
chessman писал(а) 28. Января 2010 :: 13:35:
ArtInSky писал(а) 28. Января 2010 :: 13:21:
В боевом пока нет. Готовимся к внедрению.


Держи, пожалуйста в курсе, мне тема очень интересна.

ЗЫ: как ты отключил верификацию? Раньше решение было на софтпоинте, сейчас все убрали.


http://www.softpoint.ru/article.php?id=167
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать