Вирішення, вирішення проблем під час переміщення бази даних між серверами, які працюють з SQL Server

Застосовується до: Microsoft SQL Server 2005 Express EditionMicrosoft SQL 2005 Server EnterpriseMicrosoft SQL Server 2005 Express Edition

Загальні відомості


У цій статті описується зіставлення стандартних і вбудованої, вхід для вирішення проблеми з дозволу, під час переміщення бази даних між серверами, які працюють з SQL Server.

Додаткові відомості


Під час переміщення бази даних з одного сервера на інший сервер під керуванням сервера SQL Server з SQL Server, невідповідність виникає між номери ідентифікатор безпеки (SID) вхід, майстер бази даних і користувачів користувача база даних. За промовчанням SQL Server 2005, SQL Server 7.0 і SQL Server 2000, надати sp_change_users_login збережену системну процедуру відповідність цим невідповідні користувачам. Однак, ви можете використовувати тільки sp_change_users_login , збережені процедури для зіставлення стандартний вхід з SQL Server і виконати ці відображення одного користувача, у той час. Щоб отримати додаткові відомості про sp_change_users_login , збережені процедури див. розділ "sp_change_users_login", у SQL Server 7.0, SQL Server 2000 та SQL Server 2005 Books Online.

У SQL Server 7.0 або пізнішої версії може підтримувати відображення між облікових записів, у база даних master та користувачів, що користувач бази даних за допомогою ідентифікаторів SID. Це зіставлення потрібно зберегти відповідних дозволів для облікових записів, у базі даних для користувача . Це зіставлення буде втрачено, на входи є вирішення проблем, які включають, але не неповний список таких:
  • Якщо вхід до SQL Server не існує на новому сервері, користувач намагається увійти, користувач, може з'явитися таке повідомлення про помилку:
    Сервер: Msg 18456, рівень 16, стан-1
    Не вдалося виконати вхід користувача "%ls".
  • Вхід до SQL Server, існує на новому сервері, але SID, майстер бази даних, що відрізняється від SID, у базі даних користувача , користувач можна ввійти до SQL Server успішно; Після того, як користувач намагається отримати доступ до цієї бази даних, користувач може з'явитися таке повідомлення про помилку:
    Сервер: Msg 916, рівень 14, стан, 1, Line1
    Користувач сервера "%. * ls' немає дійсного користувача в базі даних" %. * ls'.
    Примітка. У SQL Server 2005 користувач, може з'явитися таке повідомлення про помилку:

    Користувач для сервера "%s" не є припустимим користувачем, у даних "%s". Спочатку додайте обліковий запис користувача до бази даних.
Щоб отримати додаткові відомості про модель SQL Server 7.0-безпеки див. офіційний документ "Microsoft SQL Server 7.0 безпеки". Щоб переглянути офіційний документ, перейдіть на веб-сайт корпорації Майкрософт:Щоб отримати додаткові відомості про модель SQL Server 2000-безпеки клацніть номер статті в базі знань Microsoft Knowledge Base:

322712 функції безпеки сервера Microsoft SQL Server 2000 S322712 та практичні рекомендації

Обмеження

  • Якщо користувачі sysusers таблиці без префікса імені комп'ютера або імені домену, що володіють, об'єкти і ці посилання в застосунках за допомогою імені двох частин
    ім'я користувача. назва об'єкта, програми можуть бути пошкоджені через те, що sp_sidmap , збережені процедури перейменовує цих користувачів із префікса імені комп'ютера або домену, для відображення в sysxlogins таблиці. Щоб тимчасово усунути цю проблему,, sp_sidmap , після завершення збережених процедур перейменувати впливають sysusers таблиці до їх колишні імена користувачів або зверніться до служби підтримки на основному.
  • У цій статті, не вважати псевдонімів. Потрібно керувати псевдонімів вручну.
  • Якщо увійти стандартні SQL Server не існує на сервері SQL Server, можна додати входу до системи за допомогою НУЛЬ-пароля. Можливо, доведеться змінити пароль для входу в систему нижче, відповідно.
  • Якщо користувач, було створено у базі даних користувача з ім'ям, яке відрізняється від, яка відображається в таблиці sysxlogins , неможливо знати відповідного входу до системи для цього користувача. Таким чином, перш ніж запустити, sp_sidmap збереженої процедури:
    1. Перенесення всіх об'єктів, для цього користувача, якому належать до проміжна база даних.
    2. Вхідних повідомлень користувача, додати користувача, який має імені а потім знову передати всіх об'єктів, для цього користувача.
  • Якщо користувач не до відповідного входу, не префікс імені домену або ім'я локального комп'ютера, з'являється повідомлення про те, для цього користувача. Це повідомлення означає, що потрібно додати користувача на рівні Windows та додайте до SQL Server, як увійти. Після цього, слід виконати sp_sidmap , збережені процедури знову.
  • Якщо користувач має-префікс імені домену або ім'я локального сервера Windows, але відповідного входу до системи не існує в таблиці sysxlogins , збережених процедур намагається додати як новий увійти до SQL Server. Якщо користувач Windows не існує, вона генерує повідомлення про вихід у вікні результатів а потім вручну створює входу до системи, після того, як це додає користувача Windows.
  • Якщо є кілька вхід користувача в таблиці sysusers , відобразиться повідомлення "Вивід" у файлі результатів, і його список облікових записів, які мають однакові ім'я користувача. На цьому етапі потрібно вручну втручання переконатися, що користувач відповідає єдиний вхід.

    Приклад Якщо в таблиці sysusers користувача "johndoe" і sysxlogins таблиці облікових записів, імена, такі як "Test\johndoe" і "Test2\johndoe", під час виконання збереженої процедури, з'являється повідомлення про те, що один з користувачів має кілька увійти до системи та що системний адміністратор, необхідно вибрати один. Це єдиний раз, що потрібно запустити другий збережених процедур, sp_prefix_sysusersname, яка надається в цій статті. Крім того, ця ситуація докладно описано в у файлі README. txt.

Карта стандартних і вбудованої, вхід

Після переміщення бази даних з одного сервера на інший сервер під керуванням сервера SQL Server з сервера SQL Server, виконайте наведені нижче дії для втручання користувача з мінімальним

SQL Server 7.0 та SQL Server 2000

  1. Переконайтеся, що є увійти в таблиці sysxlogins в бази даних master для кожного користувача в таблиці sysusers бази даних.

    Примітка. Щоб додати стандартний вхід з SQL Server, див. "sp_addlogin" у SQL Server Books Online. Щоб додати до інтегрованої входу SQL Server, див. "sp_grantlogin" у SQL Server Books Online.
  2. Завантажте файл MapSids.exe і потім видобути файли Sp_sidmap.sql та README. txt.
  3. Увійдіть до сервера, на якому запущено SQL Server, системного адміністратора та запустіть файл Sp_sidmap.sql у базі даних користувача. Запуск файлу Sp_sidmap.sql створює два збережених процедур, sp_sidmap та sp_prefix_sysusersname.
  4. Переконайтеся, що базу даних не доступні інші користувачі, ніж той, який запущено збережених процедур.
  5. Переконайтеся, що Query Analyzer відображає результати у форматі тексту а не формат сітки. Щоб це зробити, або натисніть на
    CTRL ^ T розділи, або натисніть кнопку запиті клацніть приводить до тексту. Це дуже важливо, щоб переглянути результати та інформаційні повідомлення, в одному вікні і збережіть файл із результатами текстовий файл. Можливо, знадобиться цей файл, щоб вирішити деякі зіставлення.
  6. Через те, що не вдалося перевірити, чи параметри передаються правильно, переконайтеся, що правильно передати їх sp_sidmap , збережені процедури:
    EXEC sp_SidMap @old_domain = old_domain_name,
    @new_domain = new_domain_name,
    @old_server = old_server_name,
    @new_server = new_server_name
    Замініть значення старі і нові доменні імена та імена серверів, відповідним чином.
  7. Зберегти результати у файл і дотримуйтесь інструкцій, наданих у файлі README. txt.

    Примітка. Під час запуску, ці збережених процедур, sysusers таблиці, є лише таблиці, що зміни в базі даних. Щоб повернутися до стану, де ви почали, відновлення бази даних, або підключити базу даних.

SQL Server 2005

Якщо використовується SQL Server 2005, використовувати УВІЙТИ за допомогою положення декларації про Користувачів, ЗМІНЮВАТИ перепризначити користувача, щоб увійти новий. Щоб отримати додаткові відомості відвідайте веб-сайт Microsoft Developer Network (MSDN):Примітка. За допомогою УВІЙТИ за допомогою положення декларації про Користувачів, ЗМІНЮВАТИ , потрібно застосувати пакетом оновлень 2 для SQL Server 2005.

Посилання


Щоб отримати додаткові відомості клацніть номер статті в базі знань Microsoft Knowledge Base:

274188 "Виправлення неполадок, загублені користувачів" в електронній неповна.

246133 як передати облікових записів та паролів між екземплярами SQL Server

168001 вхід до системи та/або дозволу помилок користувача після відновлення дамп

298897 на зразок: Mapsids.exe допомагає зіставлення ідентифікаторів SID, між користувачем і майстер баз, під час переміщення бази даних