Доступ к SDE

0 голосов
спросил 17 Янв, 07 от Peps (5,330 баллов) в категории Программные продукты Esri
При создании шаблона (mxd) файла, как я понимаю, в нем сохроняется строка конекта к серверу т.е. если при создании документа мы подключили слой как пользователь SDE то и при обращении из гиссервера к SDE коннект пройдет под этим пользователем. Каким образо можно динамически менять строку конекта к SDE через ГИС сервер, основная задача изменить пользоваетля который конектится к SDE?     

5 Ответы

0 голосов
ответил 18 Янв, 07 от Grigoriy (127,020 баллов)
Вопрос зачем это нужно?
Если объект pooled, то лучше этим и не заниматься. Если объект not pooled, то Вы можете написать приложение, которое будет изменять текущее подключение так как Вам нужно. Но на это будут расходоваться ресурсы и Вы должны это учитывать.
Рекомендуется создавать разные коннекты для чтения или записи-редактирования. Причем желательно к конкректной версии данных в SDE. Ограничивать функциональность или доступ к данным для пользователей Вы должны в своем Web-приложении или сервисе.
 
0 голосов
ответил 18 Янв, 07 от Peps (5,330 баллов)
Нужно для того чтобы у система была нормальная защита. То что Вы советуете хорошо толька на уровне публичной публикации данных в интернете. А задача стоит в том, чтобы на базе ArcGISServer написать нормальную корпаративную ГИС. Причем количество пользователей планируется далеко за 2К и каждый должен иметь возможность редактировать и вводить новые данные и не иметь доступа к данным других пользователей. При этом данные должны вводиться в единую систему в которой часть пользователей должна видеть все данные сразу. А теперь представет как разделить доступ теми методами которые Вы посоветовали, конечно можно наклипать пять тысяч вию и каждому давать только его данные, но бедные админы системы. Реч идет о том, что более логично, было бы сделать конект из гиссервера к сде под тем пользователем который присоеденился к серверу, тогда автоматом снялась проблема выборки данных. Сам Oracle 10g позволят разграничить доступ к отдельным записям и уже есть реализованный метод при котором сам оракл возвращает только те данные к которым у пользователя открыт доступ.
0 голосов
ответил 18 Янв, 07 от Peps (5,330 баллов)
Но как я понимаю при доступе  not pool серверу я могу только по новой на пустой слой добавить все feature class, который мне надо. Или есть метод изменить data source для конкретных слоев в mxd документе?
0 голосов
ответил 18 Янв, 07 от Grigoriy (127,020 баллов)
Бедный Администратор, который на каждую запись в каждой таблице будет прописывать права 2К-пользователям. Smile
 
Если в Вашей конфигурации все 2К пользователей одновременно начнут редактировать данные, то на серваке запустятся 2К отдельных mxd-объекта+всё что нужно для редактирования. Каждый из них занимает в памяти в этом случае ~ 100-140М, т.е. Ваша конфигурация потребует 20-28 ТБ памяти.
 
Речь идет о том, что Вы можете создавать шаблоны приложений, решающих определенные задачи для определенных групп пользователей. Необходимо ограничивать не только доступ, но функциональность. И управлять доступом пользователей к этим приложениям.
 
А data source может меняться точно также как и всегда в mxd документе.
0 голосов
ответил 18 Янв, 07 от Peps (5,330 баллов)
Ну 2к одновременно не ломанутся. А featureclass построен таким образом, что в нем есть поле с пользователем. И сам oracle с sde отдает только те записи которые принадлежат данному юзеру и это делается автоматом, самим oracle.


--А data source может меняться точно также как и -всегда в mxd документе.

а можно увидеть пример на C# как это делается, а то я рылся, рылся и не нашел ни в одном классе свойства для установки data source. Вернее есть IMapLayerInfo.SourceDescription но это только на чтение.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...