18.05.2004, 14:58 | #1 |
Участник
|
Разрешение на доступ к базе данных
Обнаружилась такая ошибка: после операции Restore базы данных пропадает разрешение на доступ к базе данных у пользователя bmssa.
Порядок действия был такой: - сделал Backup базы данных в своей организации, - скопировал папку Standard из файла приложения Application, - создал базу данных с помощью DBWizard у заказчика (разрешение на доступ к БД у пользователя bmssa есть), - провел Restore своей БД у заказчика (права на доступ к базе данных нету, потерялись), - скопировал папку standard в папку Application на машине заказчика, - провел удаление индексов, - настроил конфигурационную утилиту на новую БД, - запустил Axapta, система построила индексы и выдала ошибку [Microsoft][ODBC SQL Server Driver][ SQL Server]Cannot open database requested in login ‘AXDB_Test’. Login fails…Connect information was: Userid= [bmssa], Database =[AXDB_Test], Server =[(local)], DSN =[For_Axapta], other = []. Если можно объясните почему так происходит? Заранее благодарен. |
|
18.05.2004, 15:20 | #2 |
Moderator
|
sp_changedbowner, sp_change_users_login - пробовали ?
|
|
18.05.2004, 15:50 | #3 |
Участник
|
вы не создали пользователя или неправильно указали логин или парна новой базе данных. После того, как укажете правильный логин и пароль у вас будет другая ошибка
http://forum.mazzy.ru/index.php?showtopic=103 |
|
18.05.2004, 18:49 | #4 |
Участник
|
В принципе, все несложно.
Особенности: 1. При восстановлении лучше не делать пользователя bmssa владельцем базы. 2. После восстановления запустить от пользователя sa команду sp_change_users_login 'Auto_Fix', 'bmssa'. После чего проверить, что user bmssa в новой базу данных соответствует login bmssa. Если все слишком запущено и такой путь не проходит, нужно сделать переназначение всех объектов базы на другого владельца, а после удаление из БД пользователя bmssa создать его заново и переназначить владельцем объектов БД. Но это работает дольше. Где-то у Мазуркина и на этом сайте валяется алгоритм... В Вашем случае попробуйте такой алгоритм: 1. Создать новую БД с владельцем sa (bmssa отдыхает). 2. Восстановить БД из архива. При этом в БД появится пользователь bmssa, не связанный ни с каким логином. 3. Запустить от пользователя sa команду sp_change_users_login 'Auto_Fix', 'bmssa' в новой БД. Внимательно прочитайте последнее предложение! 4. Проверить, что логин bmssa стал соответствовать пользователю bmssa в новой базе. Теперь объяснение ПОЧЕМУ так происходит. В SQL сервере в архиве сохраняется информация о всех пользователях: его ID в БД, его имя и соответствующий ему логин. Но в разных серверах ID у логинов с одним именем могут и не совпасть (что логично). Поэтому при восстановлении чужой БД сервер не может правильно связать пользователей БД с логинами сервера. Правильно он восстанавливает только объекты с владельцем dbo - там все просто. И еще вопрос можно? А ЗАЧЕМ так делать? Экспортом - импортом не проще? |
|