Проблемы с привилегиями пользователей ARCSDE 9.3 MS SQL 2005

0 голосов
спросил 05 Фев, 14 от Printman (700 баллов) в категории Программные продукты Esri
Описание ситуации в кратце: вне зависимости от назначения ролей, схем и установление привилегий у пользователей как средствами SQL (Menagement Studio), через Arccatalog или через Secure Manager SDE (DATAEAST) - во всех случаях имеем одно и тоже - нельзя ни создать не удалить класс объектов - ругается словами: "Cannot create a feature class in selected feature dataset because the feature class is in dataset use by another application/user. Must be the owner to perform this operation."
При этом в Arcmap позволяет редактировать, сохранять и удалять объекты.
Ситуация не меняется от изменения схемы - DBO или DB_OWNER или назначения Permission на уровне самой базы SDE или у пользователя внутри базы.
Единственный вариант когда пользователь может изменить что то на уровне Dataset - т.е. удалить, создать или перезаписать класс - возникает если назначить на уровне SQL в Security>> Logins >> Server Roles вместо dbcreator - включить sysadmin... но такой вариант как то не очень устраивает..
На уровне базы SDE не удается определить привилегии на урове наборов классов или классов объектов.
Не попытки выполнить все по инструкции от ESRI, ни шаманство путем "тройка, семерка, туз.." ничего не дали...
P.S. да, аутентификация осуществляется на уровне SQL

9 Ответы

0 голосов
ответил 05 Фев, 14 от Grigoriy (127,020 баллов)
Создавать, изменять или удалять классы объектов, наборы классов и т.д., по-определению,может только пользователь-владелец схемы. Если все данные лежат в схеме dbo, то и вносить изменения, может только пользователь с ролью dbo в этой базе.
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Administering_ArcSDE_for_SQL_Server
http://resources.arcgis.com/ru/help/main/10.2/002q/002q00000027000000.htm
Этот же пользователь раздает права другим на чтение-редактирование.
0 голосов
ответил 05 Фев, 14 от Printman (700 баллов)
Григорий, имеется в виду что эта проблема происходит у пользователя именно с такой ролью, в чем и засада..
И еще нюанс вылез - пользователь может создать датасет свой в базе SDE, но не может создать там класс объектов.
Ощущение, что права на создание таблиц есть только у администратора SQL сервера
0 голосов
ответил 06 Фев, 14 от Grigoriy (127,020 баллов)
Расул, я дал Вам ссылки на документацию.
Есть три типа пользователей в базе геоданных.
1. Администратор базы геоданных.
2. Владелец данных.
3. Редактор или просто пользователь.
Каждый из них должен иметь определенные привилегии как на уровне сервера СУБД, так и на уровне базы данных.
Вам придется прочитать документациюи проверить эти привилегии.
0 голосов
ответил 06 Фев, 14 от Printman (700 баллов)
Григорий, видимо я очень длинно написал первый пост, так что суть утерялась. Попробую короче.
На уровне сервера USER имеет роли - dbcreator и bulkadmin
На уровне базы SDE роль - db_owner (для других баз - master, msdb - роль public)
Дефаултная схема пользователя для базы SDE - DBO (пробовал назначать и db_owner)
Это все назначено на уровне управления сервером (все что описано выше)
На уровне прав базы SDE - включены все возможные разрешения от Alter до View dsfinition - включительно.
У меня получается, что - такие настройки не позволяют пользователю USER - создание, удаление таблиц в базе, он может только редактировать существующие таблицы (любые), в том числе и создавать пустые датасеты, но только не классы объектов.
Единственный случай когда пользователь USER может изменить что то на уровне операций с таблицами удалить, создать или перезаписать класс, только присвоением ему прав sysadmin на уровне SQL сервера.
P.S. Когда пользователь UDER создает DATASET, то сообщение при попытки создать класс объектов, или попытки создать класс вне датасета (в корне) базы SDE
Failed to create feature class.
Database user name and current user schema do not match. [sde.UDER.outtest]
The geometric network was not found.
В случае если он пытается сделать это уже в созданном ранее (не им) DATASET сообщение:
Cannot create a feature class in selected feature dataset because the feature class is in dataset use by another application/user. Must be the owner to perform this operation.
0 голосов
ответил 06 Фев, 14 от Grigoriy (127,020 баллов)
1. Создайте средствами SQL новую базу данных с именем, отличным от sde.
2. Разверните репозиторий в этой базев схеме DBO, используя постинсталляцию и пропуская пункт создать базу.
3. Любой пользователь с ролью dbo будет администратором этой базы.
4. Если Вы и данные будете заводить в этой же схеме, то эти же пользователи будут владельцами и администраторами данных.
0 голосов
ответил 06 Фев, 14 от Printman (700 баллов)
Ну вот предложенный путь не сработал как раз когда у всех были назначены - DBO, то не фига
Но проблема решилась странным и неожиданно легким путем: для каждого пользователя базы SDE были созданы одноименные схемы с минимально-необходимым набором привилегий, и все наконец заработало как надо.
0 голосов
ответил 06 Фев, 14 от Grigoriy (127,020 баллов)
Да, хранить данные, в схеме отличной от dbo, разумный вариант.
Но всё-таки рекомендую и базу данных назвать не sde.
База данных sde и схема sde ранее были единственным способом хранения репозитория.
И накладывали определенные ограничения.
Чтобы обойти их - используйте другое имя для базы.
0 голосов
ответил 07 Фев, 14 от Printman (700 баллов)
"База данных sde и схема sde ранее были единственным способом хранения репозитория.
И накладывали определенные ограничения."
Григорий, а какие именно ограничения накладываются в базе при использовании имени SDE ?, это где-то документированно?
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...