Зараз ви перебуваєте в автономному режимі; очікується повторне підключення до Інтернету

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

ВАЖЛИВО! Ця стаття перекладена засобами машинного перекладу Microsoft. Статтю можна редагувати в середовищі Community Translation Framework (CTF). Щоб якомога швидше перекласти всі статті у своїй базі знань різними мовами, компанія Microsoft не лише звертається до професійних перекладачів, але й вдається до машинного перекладу, який потім редагується спільнотою. Такі статті можуть містити лексичні, синтаксичні та граматичні помилки. Microsoft не несе відповідальності за будь-які неточності, помилки або збитки, до яких може призвести неправильний переклад статей або їх використання. Докладніше про CTF див. на веб-сторінці http://support.microsoft.com/gp/machine-translation-corrections/uk-ua.

Клацніть тут, щоб переглянути цю статтю англійською мовою: 918992
ВСТУП
У цій статті описано, як передати на вхід і паролі між екземплярами Microsoft SQL Server 2005, Microsoft SQL Server 2008 і Microsoft SQL Server 2012 немає іншого сервера

Додаткові відомості про те, як передавати на входи та паролів між екземплярами SQL Server, інших версій, клацніть номер статті в базі знань Microsoft Knowledge Base:
246133 Перенесення облікових записів та паролів між інсталяціями SQL Server
Додаткові відомості
У цій статті A та B є різні сервери. Крім того, як A та B запущено SQL Server 2005.

Примітка. Крім того, ці відомості стосуються для SQL Server 2008 і SQL Server 2012.

Після переміщення бази даних із екземпляра SQL Server, на сервері, А для екземпляра SQL Server, на сервері B, користувачам не вдається увійти до бази даних на сервері b. Крім того, користувачі можуть отримувати протокол IMAP про помилку:
Не вдалося виконати вхід користувача "MyUser'. (Microsoft SQL Server, помилка: 18456)
Ця проблема виникає в тому, що ви не перенесення на вхід і паролі з екземпляра SQL Server, на сервері, А до екземпляра SQL Server, на сервері б.

Щоб передати на вхід, використовувати один із нижченаведених способів відповідно до ситуації.

Спосіб 1: Увійдіть за допомогою pre-SQL Server 2000 пароль

Щоб вирішити цю проблему, зверніться до користувача для входу сервер з SQL Server за допомогою pre-SQL Server 2000 увійти.

Примітка. Пароль, контрольних оновлюється автоматично під Вільний час входу за допомогою pre-SQL Server 2000 пароль користувача.

Спосіб 2:-Скидання пароля в SQL Server

Вирішити цю проблему, скиньте пароль у SQL Server і потім сценарію входу до системи, на.

Примітка. Коли ви скидаєте пароль, застосовується алгоритм хешування пароля.

Спосіб 3: Створення журналу, в сценарій, що з порожнім паролем

Створення журналу, в сценарій, що з порожнім паролем, виконайте такі дії:
  1. На сервері A запустити SQL Server Management Studio і підключитися до екземпляра SQL Server, з якого було переміщено базу даних.
  2. Відкриття нового вікна редактор запитів і запустіть наведений нижче сценарій.
    USE masterGOIF OBJECT_ID ('sp_hexadecimal') IS NOT NULL  DROP PROCEDURE sp_hexadecimalGOCREATE PROCEDURE sp_hexadecimal    @binvalue varbinary(256),    @hexvalue varchar (514) OUTPUTASDECLARE @charvalue varchar (514)DECLARE @i intDECLARE @length intDECLARE @hexstring char(16)SELECT @charvalue = '0x'SELECT @i = 1SELECT @length = DATALENGTH (@binvalue)SELECT @hexstring = '0123456789ABCDEF'WHILE (@i <= @length)BEGIN  DECLARE @tempint int  DECLARE @firstint int  DECLARE @secondint int  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))  SELECT @firstint = FLOOR(@tempint/16)  SELECT @secondint = @tempint - (@firstint*16)  SELECT @charvalue = @charvalue +    SUBSTRING(@hexstring, @firstint+1, 1) +    SUBSTRING(@hexstring, @secondint+1, 1)  SELECT @i = @i + 1ENDSELECT @hexvalue = @charvalueGO IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL  DROP PROCEDURE sp_help_revloginGOCREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL ASDECLARE @name sysnameDECLARE @type varchar (1)DECLARE @hasaccess intDECLARE @denylogin intDECLARE @is_disabled intDECLARE @PWD_varbinary  varbinary (256)DECLARE @PWD_string  varchar (514)DECLARE @SID_varbinary varbinary (85)DECLARE @SID_string varchar (514)DECLARE @tmpstr  varchar (1024)DECLARE @is_policy_checked varchar (3)DECLARE @is_expiration_checked varchar (3)DECLARE @defaultdb sysname IF (@login_name IS NULL)  DECLARE login_curs CURSOR FOR      SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM sys.server_principals p LEFT JOIN sys.syslogins l      ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'ELSE  DECLARE login_curs CURSOR FOR      SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM sys.server_principals p LEFT JOIN sys.syslogins l      ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_nameOPEN login_cursFETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denyloginIF (@@fetch_status = -1)BEGIN  PRINT 'No login(s) found.'  CLOSE login_curs  DEALLOCATE login_curs  RETURN -1ENDSET @tmpstr = '/* sp_help_revlogin script 'PRINT @tmpstrSET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'PRINT @tmpstrPRINT ''WHILE (@@fetch_status <> -1)BEGIN  IF (@@fetch_status <> -2)  BEGIN    PRINT ''    SET @tmpstr = '-- Login: ' + @name    PRINT @tmpstr    IF (@type IN ( 'G', 'U'))    BEGIN -- NT authenticated account/group      SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'    END    ELSE BEGIN -- SQL Server authentication        -- obtain password and sid            SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )        EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT        EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT         -- obtain password policy state        SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name        SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name             SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'        IF ( @is_policy_checked IS NOT NULL )        BEGIN          SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked        END        IF ( @is_expiration_checked IS NOT NULL )        BEGIN          SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked        END    END    IF (@denylogin = 1)    BEGIN -- login is denied access      SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )    END    ELSE IF (@hasaccess = 0)    BEGIN -- login exists but does not have access      SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )    END    IF (@is_disabled = 1)    BEGIN -- login is disabled      SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'    END    PRINT @tmpstr  END  FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin   ENDCLOSE login_cursDEALLOCATE login_cursRETURN 0GO


    Примітка Цей сценарій створює два збережених процедур база даних master. Процедури, називаютьсяsp_hexadecimal і sp_help_revlogin.
  3. Запустіть наведену нижче інструкцію.
    EXEC sp_help_revlogin
    Вихідний сценарій, що sp_help_revlogin , збережена процедура, створює – це сценарію входу. Цей сценарій для входу, створення облікових записів, вихідний ідентифікатор безпеки (SID) та початковий пароль.
  4. На сервері B запустити SQL Server Management Studio і підключення до екземпляра SQL Server, до якого перенесено бази даних.

    Увага! Перш ніж переходити до кроку 5, перегляньте інформацію в розділі «Зауваження».
  5. Відкриття нового вікна редактор запитів і запустіть сценарій результати, створений на кроці 3.

Зауваження

Перегляньте наступну інформацію, перед запуском сценарію виводу на випадки на сервері б.
  • Під Вільний час спроби створити новий SQL Server 2012 увійти за допомогою pre-SQL Server 2000 входу, що це сценарій, з'являється таке протокол IMAP про помилку.:
    MSG 15021, рівень 16, стан 2, рядок 1
    Неприпустиме значення для параметра пароль. Зазначення дійсного значення.
    Примітка. Ця помилка SQL Server 2012 з геш-16-бітовий пароль, який постачався разом для створення увійти до системи "та" вхід, ЗМІНЮВАТИ заяви.

    Щоб вирішити цю проблему на сервері SQL Server 2012, створити, вхід, який з порожнім паролем. Для цього запустіть на таке повідомлення:
    CREATE LOGIN [Test] WITH PASSWORD = '', SID = 0x90FD605DCEFAE14FAB4D5EB0BBA1AECC, DEFAULT_DATABASE = [master], CHECK_POLICY = ON, CHECK_EXPIRATION = OFF

    Після створення входу до системи з порожнім паролем, користувач, можна змінити пароль при наступному спроба входу.
  • Пароль, можна обговорювали у три способи:
    • VERSION_LEGACY: це геш-це геш 16-бітовий pre-SQL Server 2000.
    • VERSION_SHA1: цей гешування створюється з використанням алгоритму SHA1 а також використовується в SQL Server 2000 – SQL Server 2008 R2.
    • VERSION_SHA2: цей гешування створюється з використанням алгоритму SHA2 512 а також використовується в SQL Server 2012.
  • У SQL Server 2008-R1, так і в попередніх версіях pre-SQL Server 2000 пароля-хеші підтримуються. Коли користувач увійти до системи за допомогою пароля, використовуються pre-SQL Server 2000 геш контрольна оновлено для сценарій виконання контрольна SHA1 пароль.
  • Якщо користувач, який має пароль, який використовує pre-SQL Server 2000 контрольна на сервері SQL Server 2008 R2, це означає, що користувач має не виконано на цьому сервері.
  • Огляд сценарію виводу обережно. Якщо A та B різні домени, потрібно змінити вихідний сценарію. Після цього потрібно замінити оригінальне ім'я домену, ім'я нового домену у звітності увійти на створення. Інтегрована облікових записів, які мають дозвіл на доступ до в новому домені не мають однакові SID, як на вхід у вихідному домені. Таким чином, користувачі загублені з цих вхід. Щоб отримати додаткові відомості про вирішення цих загублений користувачів клацніть номер статті в базі знань Microsoft Knowledge Base:
    240872 Вирішення, Вирішення проблем під Вільний час переміщення бази даних між серверами, які працюють з SQL Server
    Якщо A та B у межах одного домену, використовується ж SID. Таким чином, користувачі навряд чи буде загублені.
  • Виводу сценарію на вхід, створені за допомогою зашифрований пароль. Це відбувається через HASHED аргумент у звіті увійти на створення. Цей аргумент указує, що пароль, який після аргумент пароль введено вже обговорювали.
  • За промовчанням лише членом фіксована серверної ролі " адміністратор " можна запустити оператор SELECT sys.server_principals подання елементів. Якщо не є членом системний адміністратор , виправлені серверну роль надає необхідні дозволи для користувачів, користувачів не вдалося створити, або запустити сценарій виводу.
  • інтерактивні елементи, наведені в цій статті, не переносить за промовчанням бази даних, для певного входу в систему. Це відбувається тому, що бази даних за промовчанням не завжди існує на сервері б. Визначити базу даних за промовчанням для входу в систему використовуйте твердження входу, ЗМІНЮВАТИ передаючи на ім'я та бази даних за промовчанням аргументів.
  • Без урахування регістру A і з урахуванням регістра сервер B: порядок сортування сервером може бути без урахування регістру, а також порядок сортування сервер B, можливо, з урахуванням регістра. У цьому випадку користувачам слід указати паролів у всіх великих букв, після того, як ви передачі на вхід і паролі до екземпляра на сервері б.

    з урахуванням регістра A і без урахування регістру сервер B: порядок сортування сервером, можливо, з урахуванням регістра, а також порядок сортування B-сервера може бути без урахування регістру. У цьому випадку користувачів не вдалося увійти за допомогою до вхід і паролі перенести до екземпляра, на сервері B, якщо один із наведених нижче умов:
    • Вихідний паролів, містять не літери.
    • У вихідні паролі які складаються великими літерами.
    з урахуванням регістра або без урахування регістру на обох серверів: порядок сортування як A та B, можливо, з урахуванням регістра, або порядком сортування як A та B, можливо, без урахування регістру. У цьому випадку користувачів виникають неполадки.
  • увійти, які вже є у випадку на сервері B, можливо, ім'я, яке так само, як ім'я сценарію виводу. У цьому випадку з'являється таке протокол IMAP про помилку під Вільний час запуску сценарію виводу на випадки на сервері б.
    MSG 15025, рівень 16, держава 1, рядок 1
    основний маркер сервер "MyLogin"уже існує.
    Так само, увійти, які вже є у випадку на сервері B, може бути SID, так само, як SID, у сценарії вихід. У цьому випадку з'являється таке протокол IMAP про помилку під Вільний час запуску сценарію виводу на випадки на сервері б.
    MSG 15433, рівень 16, держава 1, рядок 1
    Визначений параметром sid, є сценарій виконання.
    Таким чином, ви повинні виконайте такі інтерактивні елементи.
    1. Огляд сценарію виводу обережно.
    2. Перевірте вміст sys.server_principals режим, у випадку на сервері б.
    3. Вирішити ці протокол IMAP про помилки, що відповідає.
  • У SQL Server 2005 SID, щоб увійти, використовується для здійснення доступ бази даних. увійти, може бути різними-ідентифікаторів SID у різних баз даних, на сервері. У цьому разі входу до системи лише доступ до бази даних із ідентифікатор SID, який відповідає SID, sys.server_principals подання елементів. Ця проблема може виникати, якщо у двох баз даних у поєднанні з різних серверів. Щоб вирішити цю проблему, вручну видалити входу до системи з бази даних із SID невідповідності за допомогою твердження користувача, ВХІДНИХ повідомлень. Потім додати входу до системи знову, за допомогою оператора СТВОРІТЬ користувача.
Посилання
Щоб отримати додаткові відомості про виправлення неполадок загублений користувачів, перейдіть до Виправлення неполадок, загублені користувачів. Microsoft Developer Network (MSDN) сайт.

Щоб отримати додаткові відомості про вхід на створення заява, перейдіть до СТВОРЕННЯ входу (Transact-SQL) Веб-сайті MSDN.

Щоб отримати додаткові відомості про вхід, ЗМІНЮВАТИ твердження, перейдіть до на ЗМІНИТИ входу (Transact-SQL) Веб-сайті MSDN.

Попередження. Цю статтю переведено автоматично

Властивості

Ідентифікатор статті: 918992 – останній перегляд: 06/12/2016 09:31:00 – виправлення: 3.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise

  • kbsqlsetup kbexpertiseadvanced kbhowto kbinfo kbmt KB918992 KbMtuk
Зворотний зв’язок
mp;t=">