Страница 1 из 1

После обновления 8.1

Добавлено: 15 дек 2007, 20:03
Daiver
После обновления атлантиса до версии 5.3.14 выполнил все необходимые процедуры, в том числе проверку БД (платформа MS SQL). Но возникла следующая проблема: при входе любого пользователя, обозначенного в протекте как "пользователь" появляется ошибка "Физическая ошибка №311 записи для настройки (указание настройки)". При этом пользователь не может заносить данные или изменять их, база доступна только для чтения. В ms70drv.log появляются следующие записи:
"15.12.2007 19:41:55 [ABDRASHETOVA]:
42000: [Microsoft][ODBC SQL Server Driver][SQL Server]EXECUTE permission denied on object 'ToAtlDate', database 'first', owner 'dbo'.
42000: [Microsoft][ODBC SQL Server Driver][SQL Server]EXECUTE permission denied on object 'ToAtlTime', database 'first', owner 'dbo'"

Если же в протекте перевести пользователя в администраторы, то все проблемы отпадают, сразу становится возможным вносить изменения в базу данных, и ошибки больше не появляются.

Что в этой ситуации делать, как решить проблему?

Добавлено: 15 дек 2007, 22:23
edward_K
а если обратно перевести в пользователи? или Support.StrongRecalcRights=On,SQLDriver.ForceRights=On поставить в Cfg и пересчитать права?

Добавлено: 17 дек 2007, 07:26
Daiver
а если обратно перевести в пользователи? или Support.StrongRecalcRights=On,SQLDriver.ForceRights=On поставить в Cfg и пересчитать права?
Переводим обратно, опять появляется та же проблема - лезут ошибки и БД только на чтение. Параметры выставлены, пересчёт прав не помогает.

Добавлено: 17 дек 2007, 08:27
eldar
У вас пользователи не имеют прав на запуск User Defined Functions
пока вам не подскажут решение, можете их дать вручную средствами MSSQL сервера, или просто запустить скрипт в QUERY ANALYZER:
GRANT EXECUTE ON dtDATE TO public
GRANT EXECUTE ON dtDAY TO public
GRANT EXECUTE ON dtHOUR TO public
GRANT EXECUTE ON dtMINUTE TO public
GRANT EXECUTE ON dtMONTH TO public
GRANT EXECUTE ON dtSEC100 TO public
GRANT EXECUTE ON dtSECOND TO public
GRANT EXECUTE ON dtTIME TO public
GRANT EXECUTE ON dtWEEKDAY TO public
GRANT EXECUTE ON dtYEAR TO public
GRANT EXECUTE ON fromDAYS TO public
GRANT EXECUTE ON fromSEC100 TO public
GRANT EXECUTE ON LPAD TO public
GRANT EXECUTE ON MOD TO public
GRANT EXECUTE ON RPAD TO public
GRANT EXECUTE ON tFromSEC100 TO public
GRANT EXECUTE ON ToAtlDate TO public
GRANT EXECUTE ON ToAtlDateTime TO public
GRANT EXECUTE ON ToAtlDateTime2 TO public
GRANT EXECUTE ON ToAtlTime TO public
GRANT EXECUTE ON toDAYS TO public
GRANT EXECUTE ON toMsDateTime TO public
GRANT EXECUTE ON ToSec100 TO public
GRANT EXECUTE ON TRUNC TO public
GRANT EXECUTE ON tToSec100 TO public
go

PS
если можете ждать то лучше подождите пока ктонить не подскажет правильное решение

Добавлено: 17 дек 2007, 09:55
Алексей
Я бы подождал, пока ТП сделает нормальную инструкцию по переходу на 5.3 и не мучался...

Добавлено: 17 дек 2007, 09:59
Daiver
eldar писал(а):У вас пользователи не имеют прав на запуск User Defined Functions
пока вам не подскажут решение, можете их дать вручную средствами MSSQL сервераесли можете ждать то лучше подождите пока ктонить не подскажет правильное решение
Уже сделал вручную, без скрипта. Спасибо. Ждать, к сожалению, не могу, пользователям работать надо.

Добавлено: 18 дек 2007, 10:54
Ged
1. Новым ms_inst установить БД ( можно только структуру)
2. В сформированной БД выхватить все процедуры и добавить в свою.
Проблема в том, что при установке нового напса процедуры не добавляются, т.к. он не знает в какую БД их добавлять :(

Добавлено: 18 дек 2007, 11:27
Daiver
Ged писал(а):1. Новым ms_inst установить БД ( можно только структуру)
2. В сформированной БД выхватить все процедуры и добавить в свою.
Проблема в том, что при установке нового напса процедуры не добавляются, т.к. он не знает в какую БД их добавлять :(
Проблема в другом. После проверки базы chkmssql.exe (это описано в ридми по обновлению атлантиса до версии 5.3.14) процедуры добавились, но, к сожалению, в них не стояло разрешение на право исполнения этих процедур. Пришлось добавлять вручную. Теперь всё работает.