Права пользователя

Добрый день.

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

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

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-скриптов" все того же руководства)

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

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

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

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

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