Добрый день.

Настроил репликацию для двух точек.
База велась на одной территории, потом поставил базу на другую.
Базу переносил при помощи той же репликации.
Т.е. на точке создал пустую базу и сказал - реплицируй.
Пользователи конечно ни какие не перенеслись.

Завел логины поключил их к базе... Все работает... Видят все кому чего положено...

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

[09.12.08 15.49.50.749] (E)     Ошибка выполнения метода 'amiAddFileOnExecute'. Текущий пользователь не имеет достаточно прав для добавления записей в таблицу 'tbl_FileInOpportunity' «Call Stack»

На основной точке они в эти проекты добавлять файлы могут.
Права в SQL я сравнил - все одинаково.

Я посмотрел, на эту таблицу в SQL-у явные права даны в группе "Все пользователи" (если смотреть из интефейса Террасофта, то у группы "Все пользователи" нет вообще ни одной галочки !!!???). Эти три пользователя в эту группу входят...

Помогите пожалуйста в этой ситуации.

Нравится

27 комментариев

Зашел под именем одного из проблемных пользователей в SQL Query Analyzer. Запись в таблицу добавилась без всяких проблем.

Кирилл, какие лицензии у "проблемного" пользователя?

Не очень понял вопрос...
Как у всех. У нас у всех лицензии одинаковые...
А они разные бывают?

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

Конкурентные и именные

У нас именные.

Да, они бывают не только конкурентные и именные, но еще на разные продукты. Например: SD Agent и SD User. У "проблемного" пользователя какие?

А как это посмотреть?

Но наверное не в лицензии дело, т.к. на основной точке этот пользователь файлы к проекту цепляет без проблем.

Какое имя пользователя и Ваш Customer ID?

Можете в "личку" написать.

Написал

Да, с лицензиями все ок.
Выполните под "проблемным" пользователем запрос на центральной точке и на удаленной:

SELECT * FROM [dbo].[fn_CurrentUserTableGroupRoleList] ()
WHERE [SQLObjectName] = 'TG_OPPORTUNITY'
GO

Какие результаты?

Кирилл, есть ли у Вас документ "TSCRM MSSQL Руководство по репликации.doc"? Если есть посмотрите пункт 5.2. Использование утилиты репликации.

на основной
read 1; insert 1; update 1; delete 0

на второй

read 1; insert 0; update 1; delete 0

???

Ну как бы все понятно:)
На основной разрешено добавление, на второй нет.

Да не очень понятно...
Права то стоят, я даже ему явные давал без групп на добавление и изменение файлов и проектов ничего не помогает.
Сейчас сравнил права в террасофте сделал точно все одинаково
Все равно не работает.
Причем результат запроса остался прежним. Т.е. прав не хватает.

Как Вы проверяете что права в SQL на основной точке и удаленной совпадают для таблицы tbl_FileInOpportunity?

В базе данных существует роль TG_OPPORTUNITY_CI, этой роли разрешена вставка в таблицы tbl_Opportunity и tbl_FileInOpportunity. Так ли это на удаленной точке?
Когда Вы разрешаете через раздел Администрирование роли или пользователю вствку в группу таблиц "Проекты", пользователь или роль становится членом роли и получает возможность вставки записи. Так ли это на удаленной точке?

в SQL EM -> Tables -> tbl_FileInOpportunity -> Permission -> List only ...
Там остается 5 групп TG_..._CD, ..CI ..CR ..CD и Все пользователи у групп TG права на свою функцию у "Все пользователи" на все кроме удаления.

Ну да так и есть
TG_OPPORTUNITY_CI права есть
в эту группу включены все нужные группы и пользователь там такой есть.
Один из трех человек вообще включен в группу администрация, которая потенциально может делат все...

Откройте на удаленной точке в Администраторе таблицу tbl_FileInOpportunity. Указана ли там группа таблиц "Проекты"?

Создал новые проект проверил добавление файлов у всех трех пользователей.

Ситуация такая: у двоих работает, у одного (собственно самого нужного) - нет.

Отличаются они тем, что последний пользователь самый новый.
Я его заводил в террасофт, когда базы были уже разделены.
Т.е. он не реплицировался со всеми вместе в начале, а заведен потом...

Есть ли у Вас документ "TSCRM MSSQL Руководство по репликации.doc"? Если есть посмотрите пункт 5.2. Использование утилиты репликации.

Руководство есть. Репликация работает, все передается, все принимается.

Да указана

Кирилл, не может все передаваться и приниматься.
В п.5.2. описаны ограничения, которые появились в версии 3.2:

В версии Terrasoft CRM 3.2 по репликации не передаются таблицы логирования, пользователи, роли, права на группы таблиц, права на поля таблиц, а также вхождения пользователя в роль и роли в роль на сервере.

"Хомутов Кирилл" написал:Т.е. на точке создал пустую базу и сказал - реплицируй.
Пользователи конечно ни какие не перенеслись.

"Хомутов Кирилл" написал:Завел логины поключил их к базе... Все работает... Видят все кому чего положено...

Я имел ввиду, что данные переносятся.

Объясню более подробно. Репликация может передавать только данные, которые храняться в пользовательский таблицах, таких как tbl_Account, tbl_Contact и т.п. Пользователи и роли храняться в таблице tbl_AdminUnit, и данные этой таблицы передаются, но(!) начиная с версии 3.1.0 мы создаем еще пользователей и на стороне сервера: логины, пользователи и роли. Эти объекты уже не данные, а обьекты базы данных и сервера и репликация их не "видит". Для того чтобы и они передавались Вам необходимо написать sql скрипты по созданию пользователя(не как записи в таблице tbl_AdminUnit, а через конструкции sp_adduser или create user - зависит от версии sql сервера), логина(sp_addlogin или create login), ролей и опять же запросом раздать права инструкциями GRANT, REVOKE и DENY. И эти запросы добавить в таблицу rep_ExecutedSQL(см. п. "5.3.1. Отправка SQL-скриптов" все того же руководства)

Спасибо Вам, Александр, за помощь!

Получилось у меня все!!!

Я переподключил пользователей в группы в террасофте...
До этого я делал это только с группой "Все пользователи", поскольку только она фигурировала в правах на таблицу. Сейчас сделал просто по всем имеющимся...

По поводу переноса пользователей я понял, но мне и не нужно, чтобы у меня пользователи реплицировлись.

Показать все комментарии