AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.02.2005, 19:34   #1  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Подключение базы данных
Подключаю в SQL Server Enterprise Manager базу данных Axapta (файлы .mdf, .ldf), скопированную с сервера, на своем лэптопе локально. Версии Axapta, MS SQL и их сервис-паков одинаковые.
При этом когда пытаюсь запустить Axapta, выдается ошибка: Invalid object name `SQLSYSTEMVARIABLES`. В чем здесь проблема?
Вложения
Тип файла: img59919-1 (287.7 Кб, 832 просмотров)
Старый 24.02.2005, 19:55   #2  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Лечится запуском процедуры sp_change_users_login 'auto_fix','bmssa' от dbo в подключенной БД, где bmssa - это владелец таблиц аксапты и логин в новой базе. Рецепт работает при условии что такой пользователь есть и в сервере SQL, и в подключаемой БД.
Смысл в том, что чужая база не может правильно соотнести пользователя БД и пользователя сервера SQL.
Более подробно есть инструкция как на этом форуме, так и на сайте www.mazzy.ru
__________________
Михаил Андреев
https://www.amand.ru
Старый 24.02.2005, 20:17   #3  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Я попробовала: открыла SQL Query Analyzer, выбрала базу данных из списка и запустила запрос: sp_change_users_login 'auto_fix','bmssa' .
Условия: такой пользователь (bmssa) есть и в сервере SQL, и в подключаемой БД - выполняются.
Однако, ошибка при запуске остается. Может, я как-то неправильно запрос запускала?
Старый 24.02.2005, 20:24   #4  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Проще стукнуться в аську или MSN.
Так мы будем долго переписываться.
__________________
Михаил Андреев
https://www.amand.ru
Старый 24.02.2005, 20:26   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ваш bmssa входит в группу system administrator на СКЛ?
если да, владелец у таблиц прописывается как dbo и Аксапта ведет себя по-другому.

не стоит включать обычного пользователя в эту группу. Ни с какой точки зрения.
Уберите группу, пересоздайте базу, восстановите. Далее действуйте по инструкции http://axapta.mazzy.ru/hints/sqlsystemvariables/
Старый 24.02.2005, 21:15   #6  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Михаил, у меня нет ICQ или MSN - запрещен к использованию на работе.

Mazzy, а что такое СКЛ?

Login Name для bmssa инициализировался в SQL Server Enterprise Manager после запуска запроса. Но при этом с запуском Axapta та же проблема осталась.
Старый 24.02.2005, 21:24   #7  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Кстати, смотрю свойства SQL server login-а bmssa - на странице Database Access для подкоюченной базы User установлен dbo, в то время как для остальных баз Axapta пользователь - bmssa.
Может в этом причина?
Старый 24.02.2005, 21:24   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
СКЛ = SQL
Старый 24.02.2005, 21:27   #9  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Mazzy, да, bmssa входит в группу system administrator на СКЛ, я проверила.
Старый 24.02.2005, 21:32   #10  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Изначально опубликовано OliaM
Михаил, у меня нет ICQ или MSN - запрещен к использованию на работе.
Такого не бывает. Точнее, нет такого запрета, который нельзя было бы обойти. Мне такие запреты как то никогда не мешали...
Цитата:
Mazzy, а что такое СКЛ?
Сергей, ну ты и сказал.
Цитата:
Login Name для bmssa инициализировался в SQL Server Enterprise Manager после запуска запроса. Но при этом с запуском Axapta та же проблема осталась.
......
Кстати, смотрю свойства SQL server login-а bmssa - на странице Database Access для подкоюченной базы User установлен dbo, в то время как для остальных баз Axapta пользователь - bmssa.
Может в этом причина?
Похоже, при подключении БД к серверу Вы сделали ее владельцем bmssa, что делать не стоило. Отберите все серверные роли от bmssa, отключите базу и подключите заново, указав в качестве владельца, например, пользователя sa, потом опять запустите скрипт.
__________________
Михаил Андреев
https://www.amand.ru
Старый 24.02.2005, 21:34   #11  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Еще у меня на SQL сервере аутентификация Windows. На работающих базах данных у dbo в колонке Login Name: org\oliam (мой Windows login), а в подключенной базе для пользователя dbo в колонке Login Name: bmssa почему-то. Может причина здесь?
Старый 24.02.2005, 21:59   #12  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Цитата:
Такого не бывает. Точнее, нет такого запрета, который нельзя было бы обойти. Мне такие запреты как то никогда не мешали...
не знаю, я стараюсь не рисковать в этом плане, чтоб IT наши не наезжали

Цитата:
Похоже, при подключении БД к серверу Вы сделали ее владельцем bmssa, что делать не стоило. Отберите все серверные роли от bmssa, отключите базу и подключите заново, указав в качестве владельца, например, пользователя sa, потом опять запустите скрипт.
Все переделала как у вас написано, Михаил. Теперь Login-ы bmssa и dbo в подключенной базе выглядят (в плане параметров) в точности, как для рабочих баз.
Но все равно при запуске Axapta - тот же геморрой, кошмар.
Старый 25.02.2005, 03:33   #13  
OliaM is offline
OliaM
Участник
 
213 / 10 (1) +
Регистрация: 30.09.2004
Вот какое отличие (между подключенной базой и рабочими базами Axapta) я нашла:

В SQL Server Enterprise Manager не получается отключить bmssa (логин) от подключенной базы. Выдается ошибка: The user owns objects in the database and cannot be dropped.

Для обычных работающих баз Axapta логин bmssa отключается без проблем. Может, в этом дело?
Старый 25.02.2005, 08:30   #14  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Похоже, Вы НЕ сделали того, что я сказал. Кто является владельцем базы данных (в Enterprise Manager на базе правой кнопкой выбрать Properties на закладке General значение поля Owner)? Уверен, что bmssa, а должен быть кто либо другой, например sa или администратор.
Нужно сначала отключить БД (Detach Database...) и подключить (Attach Database...) заново, указав ее владельцем (Owner) любого пользователя, кроме bmssa. Только потом опять запустить скрипт sp_change_users_login 'auto_fix','bmssa'

Цитата:
не знаю, я стараюсь не рисковать в этом плане, чтоб IT наши не наезжали
Тогда, может, имеет смысл "Ваших IT" и заставить решать проблему с базой?
__________________
Михаил Андреев
https://www.amand.ru
Старый 25.02.2005, 08:47   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Михаил Андреев
Кто является владельцем базы данных
По-моему, владелец базы данных никак не влияет на работу Аксапты.
Важны владельцы таблиц.
Старый 25.02.2005, 09:10   #16  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Изначально опубликовано mazzy

По-моему, владелец базы данных никак не влияет на работу Аксапты.
Важны владельцы таблиц.
Сергей! Если bmssa является владельцем базы, то он для нее пользователь dbo, а не bmssa. Аксапта такие вещи понимает и для владельцев БД сама подставляет имя dbo перед названиям объектов. Но, если база взята с другого компьютера, владельцем будет указан "старый" bmssa, а Аксапта будет пытаться взять объекты dbo вместо bmssa.
__________________
Михаил Андреев
https://www.amand.ru
Старый 25.02.2005, 09:39   #17  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Изначально опубликовано OliaM
В SQL Server Enterprise Manager не получается отключить bmssa (логин) от подключенной базы. Выдается ошибка: The user owns objects in the database and cannot be dropped.
Попробуйте "пробежаться" по всем таблицам в базе и процедурой sp_changeobjectowner поменяйте владельца на "нового" dbo. После этого старый логин должен беспроблемно отключиться.
__________________
С уважением, Вячеслав.
Старый 25.02.2005, 09:51   #18  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Изначально опубликовано slava

Попробуйте "пробежаться" по всем таблицам в базе и процедурой sp_changeobjectowner поменяйте владельца на "нового" dbo. После этого старый логин должен беспроблемно отключиться.
Угу. У Аксапты более 2000 таблиц. Вручную не пробежишься. Где-то валялся мой скрипт по замене владельца объектов БД, но сейчас найти уже не смогу. Здесь на форуме был...
__________________
Михаил Андреев
https://www.amand.ru
Старый 25.02.2005, 10:04   #19  
YellowSubmarine is offline
YellowSubmarine
Участник
 
111 / 12 (1) ++
Регистрация: 18.12.2002
Этот скрипт?
-- Скрипт меняет владельца всех объектов в БД, принадлежащих dbo на bmssa
-- Запускать нужно от dbo
----- BEGIN OF SCRIPT ------------------
declare @uid_from int, @name varchar(1000);

select @uid_from = uid from sysusers where name = 'dbo';
DECLARE CT CURSOR FOR select 'dbo.'+name from sysobjects where uid = @uid_from and xtype = 'U';

OPEN CT
WHILE 1=1
begin
FETCH FROM CT INTO @Name
IF @@fetch_status=-1
BREAK;
IF @@fetch_status=-2
CONTINUE;
exec sp_changeobjectowner @name, 'bmssa';
PRINT @Name;
end;

DEALLOCATE CT
Старый 25.02.2005, 10:10   #20  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Цитата:
Изначально опубликовано Михаил Андреев
Вручную не пробежишься.
Так я скриптом "бегаю"
__________________
С уважением, Вячеслав.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SysSQLBlockingMSSQL - форма Блокировки пользователей базы данных DenisS DAX: Программирование 6 18.08.2009 17:23
Принципы построения базы данных Гужанов Павел DAX: Администрирование 11 05.09.2008 16:47
Утилиты для работы с журналом базы данных vc DAX: База знаний и проекты 0 10.05.2008 17:40
Вопрос по журналу базы данных(лог) Hidden DAX: Функционал 2 21.09.2005 14:00
Уменьшение базы данных Axapta Writer DAX: Администрирование 13 15.09.2003 16:53

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:10.