Имя: Пароль:
1C
1С v8
Ограничение доступа к серверу 1С ☑
0 eshkatot
 
03.08.12
✎
12:50
Приветствую
Есть такой вопрос. Возможно ли как-то разграничить доступ к базам на 1С сервере Windows пользователям без внесения изменений в сами базы?
Т.е. чтобы пользователю А соответствовала база А1, а пользователю Б - Б1. Но при этом пользователь А никак не могу получить доступа к базе Б1, чтобы пользователь Б в не наворотил. И наоборот соответственно.
1 ДенисЧ
 
03.08.12
✎
12:53
Создать им каждому пользователя в соот.базе, прописать виндовз-авторизацию.
2 eshkatot
 
03.08.12
✎
12:59
Это подразумевает внесение изменений в базу данных, а также получение к ней админского доступа.
Хочется обойтись без этого.
3 Cube
 
03.08.12
✎
13:02
(2) Чо? Читай (1) пока не прозреешь.
4 serg_sh75
 
03.08.12
✎
13:05
(3)п...ц
5 serg_sh75
 
03.08.12
✎
13:06
(0) срочно отойди от базы!
6 eshkatot
 
03.08.12
✎
13:20
Я не хочу влезать в базу, есть возможность средствами платформы или сервера ограничить конкретному Windows пользователю доступ к конкретной базе, или нельзя?
Понятно что можно прописать Windows авторизацию для пользователей в базе, но это подразумевает наличие минимум двух пользователей в базе. 1С пользователя с правами админа и Windows пользователя. А вопрос в том можно ли ограничить доступ к серверу ДО авторизации в самой базе.
7 Maxus43
 
03.08.12
✎
13:22
(6) нельзя если базы на одном сервере 1с
8 Maxus43
 
03.08.12
✎
13:23
или в каждой базе только 1 пользователь windows? на уровне скуля можно
9 ДенисЧ
 
03.08.12
✎
13:24
(2) какое изменение? Создание пользователей - это штатное действие с базой, не требует вмешательства в конфигурацию!
10 eshkatot
 
03.08.12
✎
13:24
А если на разных можно?
11 Maxus43
 
03.08.12
✎
13:27
(10) на разных серверах 1с - значит у вас 2 сервера 1с с купленными ключиками для них
12 eshkatot
 
03.08.12
✎
13:28
(8) как? Обращается-то сервер, тем пользователем, которого указали при создании базы. На клиентское приложение это не влияет.

(9) Я что-то говорил про конфигурацию? Штатное действие не изменяет базу данных? Прочитайте пожалуйста вопрос и уточнения.
13 Maxus43
 
03.08.12
✎
13:28
короче коннект к службе сервер 1с по определённому порту, соответственно для какого-то юзера можно закрыть порты, которые ему не нужны
14 ptiz
 
03.08.12
✎
13:28
(0) Хоть скажи, у тебя базы файловые или sql ?
15 Maxus43
 
03.08.12
✎
13:29
(12) вот и укажите пользователя этого у базы, и дайте ему в скуле права на эту базу
16 Maxus43
 
03.08.12
✎
13:30
(15) + не, туплю) так не прокатит
17 eshkatot
 
03.08.12
✎
13:30
Воот, я уже весь мозг сломал
18 eshkatot
 
03.08.12
✎
13:31
(14) 1С сервер не умеет работать с файловыми базами данных.
19 eshkatot
 
03.08.12
✎
13:32
(13) Думал на этот счет, но это еще более менее катит если не надо автоматизировать. И если у тебя до 10 пользователей. Да и отдельный инстанс поднимать под каждого пользователя - жирновато.
20 Maxus43
 
03.08.12
✎
13:33
(17) покури (13), если сервера 1с разные - соответственно у них разный ИП (имяхоста), для пользователя на уровне сети можно отрезать доступ, а-ля как доступ к шаре, только к ИП
21 ptiz
 
03.08.12
✎
13:33
(18) Некоторые сервером называют "вон тот шумящий ящик".
Переводи в файловую версию и раздавай права на каталог :)
22 Maxus43
 
03.08.12
✎
13:34
дай юзерам ярлыки на конкретные базы, запрети под страхом паяльника создавать новые базы
23 Maxus43
 
03.08.12
✎
13:35
и так, у тебя 10 юзеров. права на уровне сети раздавать накладно, а права в самой 1с - религия не позволяет? это самы нормальный вариант, или юзеры в базе из под "неавторизован" работают с полными правами?
24 vde69
 
03.08.12
✎
13:36
(17) можно, для этого нужен анализатор IP пакетов.

для каждого юзера настраиваешь фаервол на запрет исходящего соединения с определенным началом содержания IP пакета.

правда никогда не встречал фаеров с такой фунцкией, но думаю что существуют...
25 Kreont
 
03.08.12
✎
13:37
(0) Почти у всех базах 1С есть разделение прав по организациям (РЛС) + как вариант создать ЦБ + РИБ организаций и раздавать права
26 Волесвет
 
03.08.12
✎
13:38
в правах на доступ к папке
27 eshkatot
 
03.08.12
✎
13:40
(21) больше 100 пользователей, работают с разных машин. Общий объем баз - 150 гб, средний размер базы - 400 мб. Да, файловый режим работы это то что мне надо =)))
Говорят новый 2012 сервер хорош в этом плане, но терзают меня смутные сомнения.

(22) Тоже думал, но неудобно это нифига. Во-первых надо как-то следить за всем этим. Во-вторых буду погребен под запросами на создание новых баз. Т.е. запрет на изменение списка баз и настроек 1С (отнять доступ на изменение к файлам настроек).

(24) Будет работать только в случае если соединение не шифруется, но вообще какое-то благородное безумство в этом проглядывает.

(25) Подразумевает вмешательство в структуру базы.

(26) Сервер баз данных, права на папку это хорошо, когда у тебя 3 базы и 10 пользователей.
28 vde69
 
03.08.12
✎
13:40
(24)+ ммм даже лучше, фаер ставится на сервер где критится сервер 1с и рубится входящий трафик.

там при коннекте начиная с 2 пакета идет открытый ключ, если колюч рубануть, сервер 1с просто перестанет понимать клиента
29 vde69
 
03.08.12
✎
13:41
(27) соединение шифруется ВСЕГДА, но определить базу и пользователя - можно
30 Kreont
 
03.08.12
✎
13:44
(27)+(25) не подразумевается никакого вмешательства в код, 100%
А делать для 1С разгарничение через файл.системы и права на папки и на БД нелогично.
31 Maxus43
 
03.08.12
✎
13:45
объясни нормально чем не нравится завести юзеров в 1с с вин-авторизацией?
или действительно у вас в базах вход без пароля? тогда это ахтунг натуральный
32 ptiz
 
03.08.12
✎
13:49
(31) Кому интересны простые пути?
33 eshkatot
 
03.08.12
✎
14:03
(27) А если соединение внутри шифрованного VPN туннеля тоже можно?

(28) Ок, а если клиентом у нас терминальный сервер с которого ходит 10 клиентов, как мне их разграничить?

(29) В код нет, в базу да.

(31) Да не хочу я знать что там с авторизацией внутри базы + Например загружает пользователь свой dt со своими пользователями. Ему ремаппинг надо делать.

(32) Да, простых путей мы не ищем.
34 JeyRico
 
03.08.12
✎
14:03
(32) Никому. Решение проблемы знают все. Здесь соревнование по it-изврату.
35 eshkatot
 
03.08.12
✎
14:05
(32) Не по существу. Предложите свой вариант решения задачи.
36 JeyRico
 
03.08.12
✎
14:06
> Да не хочу я знать что там с авторизацией внутри базы + Например загружает пользователь свой dt со своими пользователями. Ему ремаппинг надо делать.
У тебя юзеры свои базы на работу таскают? И какое тебе дело до их баз?
37 alkov
 
03.08.12
✎
14:08
(33) Куда загружает? На сервер? А кто ж ему таких прав даст?
38 eshkatot
 
03.08.12
✎
14:11
(36) + (37) Ну допустим у меня 10 злобных кодеров-фрилансеров. Которые работают на моих серверах с чужими базами. И мне не надо чтобы они ходили в базы друг друга. Но при этом мое участие должно быть минимальным. Т.е. кодер должен иметь возможность - создать базу, залить в нее любую конфигурацию или выгрузку. При этом соседний злобный кодер доступа к этой базе не должен иметь. И вообще, это не относится к вопросу. Это административный способ решения задачи, а меня интересует техническая сторона - возможно или нет. Походу нет.
39 alkov
 
03.08.12
✎
14:29
Каждому свою виртуалку с своим сервером предприятия
40 eshkatot
 
03.08.12
✎
14:33
Жирно будет. Нет, не так. Каждому виртуалку - значит программист может отожрать под свои задачи не 32 гб памяти, а только 4. А этого ему мало. Да и поддерживать 10 серверов сложнее. И масштабируемость хромает.
41 alkov
 
03.08.12
✎
14:37
Не, ну можно, конечно, и 10 серверов предприятия в одной ОС запустить, для каждого прописать соответствующего администратора, но это не меньший изврат, чем (39)
42 alkov
 
03.08.12
✎
14:40
С одним сервером предприятия не взлетит, имхо. Ибо если есть права на создание новой своей ИБ, то и удалить чужие тоже есть право
43 eshkatot
 
03.08.12
✎
14:42
(41) Короче говоря - отметаем. Кроме того, доступ к базе таким образом не защищен.

(42) Ну уж интерфейс для создания-удаления баз без доступа к консоли управления сервером 1С я смогу сделать.
44 vde69
 
03.08.12
✎
14:55
(33)

>>> Ок, а если клиентом у нас терминальный сервер с которого ходит 10 клиентов, как мне их разграничить?

в КАЖДОМ (почти каждом) пакете виндовый логин имеется, причем в открытом виде, вне зависимости от авторизации.
45 vde69
 
03.08.12
✎
14:58
(44) возьми IP-Tools и сниферни процесс подключения, там все прозрачно... конечно к потрохам там доступа нет (шифруется сеансовыми ключами) но заголоков вполне хватит что-бы правила нарезать на фаере (правда если найдешь такой фаер которы по содержанию пакетов умеет резать).

на крайняк можно железку купить, циски точно это умеют делать....
46 olegves
 
03.08.12
✎
15:21
eshkatot,
вирусописатель, не?
47 eshkatot
 
03.08.12
✎
15:27
(44) + (45) Хм, да имя базы передается в открытую. Можно будет попробовать.

(46) Что вы, просто скромный админ. А вы, кстати, какое решение предлагаете?
48 olegves
 
03.08.12
✎
15:31
(47) занизить собственные амбиции
49 vde69
 
03.08.12
✎
15:34
(47) я пытался разобраться досконально с протоколом клиент-сервер, вроде все понятно, единственное я не понял какой именно алгаритм шифрования используется, скорее всего RSA но их несколько стандартов и несколько различных реализаций.

Если иметь информацию о конкретном алгоритме - можно эмулировать клиентские запросы и получать например список баз сервера без запуска самой 1с в обход их системы авторизации кластера.
50 eshkatot
 
03.08.12
✎
15:34
(48) При чем здесь амбиции? Есть конкретная задача. Вот товарищ vde69 предложил костыльное, но имеющее право на жизнь решение.
51 eshkatot
 
03.08.12
✎
15:42
(49) Насколько я понимаю (ни разу не разработчик 1С) это велосипед. Т.к. есть специальный режим 1С сервера, который это позволяет. v8: 1c и c#. Если не прав - поправьте.
52 vde69
 
03.08.12
✎
15:53
(51) нет ты не прав,
1с реализовано как 2 разных DCOM сервера

первый - это управление кластером и тут требуется авторизация админа кластера/сервера

второй - рабочий, тут авторизация базы

ни первый ни второй сервер не позволяют реализовать сабж

---------------------

я предлогаю опустится ниже DCOM (а точнее на его физическую реализацию а не интерфейсную часть, именно там можно реализовать сабж)
53 Kreont
 
03.08.12
✎
17:53
Вариант сделать через файловые базы, задать права на папку только конкретному юзверю, указать квоту, впустить через терминал с подключением домашней заданой папки, и все. Тогда будем иметь доступ только к 1-му себе ) как и надо.
54 mih_io
 
03.08.12
✎
18:26
непонятно:
1. Если ребята работают на сервере, значит у них есть логин и пароль на сервер и, как следствие, личная папка в которой делай что хочешь и никто доступа не будет иметь. Зачем тут еще куда то и как-то вмешиваться?
2. Если предполагается, что ребята будут ставить базу используя один кластер в сервере 1с и одну СУБД, то никто не мешает каждому из таким уникумов создать пользователей в скуле и чтобы только под ним они могли разворачивать базы. Соответственно другой пользователь не сможет удалить эту базу из скуля.

Конфликты:
1. В сервере 1с можно посмотреть все созданные базы и попытаться из клиента 1с к ним подцепиться, но если стоит любой пароль, тогда без доступа к БД в скуле, его никак не взломать.
2. Проблема 2, никто не мешает в сервере 1с из кластера удалить базы своих "коллег". Понятно, что сама БД будет жива и ничего не сложно прицепить заново БД в кластере, но это бесило бы, особенно если базы не просто для работы программера а еще и реально рабочие для остальных пользователей.

Вывод. Если вы можете сделать как написали в (43) то почему это все не взлетит?
55 oleg_km
 
03.08.12
✎
19:07
(52) C 8.1 1С уже не DCOM.
56 serg_sh75
 
03.08.12
✎
19:14
а если запустить несколько процессов 1С на разных портах, и по  портам ограничить пользаков
57 eshkatot
 
10.08.12
✎
19:19
Подниму тред, ибо решения все-таки пока не накопал. Смиренно прошу еще немного внимания.

(53) Через файловые не катит, т.к. пользователей много, базы большие, по сетке производительность не устраивает.

(54) Опять-таки речь идет о том чтобы уйти от файловой версии баз. А с использованием одного сервера возникает проблема. Хочется ограничить доступ к базе не внося изменений в структуру базы. Чтобы пользователь виндовый гарантировано не мог подключиться к чужой базе, даже если она пустая.

(56) Обсуждалось - слишком много портов-пользователей получается, да и поднимать отдельный инстанс под каждого пользователя - накладно.
58 Kreont
 
10.08.12
✎
20:15
(57) Почему это через.файл не прокатит, если через терминал пустить, все будет норм со скоростью.
59 mistеr
 
11.08.12
✎
02:47
(57) Я за виртуализацию всего, как самое простое решение.

Твои требования противоречивы. Как будто на ходу придумываешь.

>больше 100 пользователей, работают с разных машин.
>соединение внутри шифрованного VPN туннеля
>клиентом у нас терминальный сервер с которого ходит 10 клиентов
>у меня 10 злобных кодеров-фрилансеров
>кодер должен иметь возможность - создать базу, залить в нее любую конфигурацию или выгрузку.
>Я не хочу влезать в базу

Добавим к этому (предположительно) Windows и SQL Server. И будем рассуждать логически.
Каждый пользователь должен иметь учетку Windows на сервере. OK, уже имеет.
Чтобы работать с базой, пользователь должен иметь учетку в базе SQL Server. Хотя авторизоваться он может виндовой учеткой.
Чтобы иметь возможность создать базу в SQL, пользователь должен быть SA! Либо ты сам будешь создавать им базы и учетки в них по требованию. Так как дать им sa ты не можешь, а создавать базы сам не хочешь, то выход - виртуализация.

Это мы еще до серверов 1С не добрались. С ними, кстати, можно более-менее нормально доступ разрулить. На каждого пользователя по кластеру, ты будешь администратором центрального сервера, а пользователь админом кластера. В чужой кластер залезть не сможет.

Но возникает проблема - распределение ресурсов. Их нужно ограничивать, потому что рано или поздно кто-нибудь по глупости отожрет их все (способов много) и будет мешать остальным. Windows и SQL Server позволяет квотировать далеко не все ресурсы. Поэтому выход опять - виртуализация.
60 SachoZ
 
11.08.12
✎
11:31
(59) Че это только SA? Просто дать права "GRANT CREATE DATABASE..."?
61 mih_io
 
11.08.12
✎
11:41
(57) вы в (43) написали, что сможете сделать "Ну уж интерфейс для создания-удаления баз без доступа к консоли управления сервером 1С я смогу сделать."

Соответственно они не смогут удалить уже созданные БД в кластере 1с других пользователей. Даже если к ним смогут подключиться, то 1с-ка спросит логин и пароль и они конечно не знают его. Узнать пароль на вход в 1с в SQL-ых версий без доступа в БД в СУБД никак нельзя.

Вам надо будет только каждому выдавать свой логин и пароль в MS SQL чтобы они там не имели доступа в базы созданные не ими.
62 Gepard
 
11.08.12
✎
12:50
(0) сделай для каждой организации, которая арендует площадку отдельный виртуальный сервер. Туда же локально поставь сервер приложений (или просто файловый вариант базы). На VMWare все очень просто разруливается)
63 mistеr
 
11.08.12
✎
13:53
(60) Могу и ошибаться. Так написано в желтой книжке.
(Если быть точным, не sa, а sysadmin)