Kopsavilkums
Šajā rakstā ir aprakstīts, kā standarta un integrētā pieteikšanās karti lai atrisinātu atļauja problēmas, pārvietojot starp serveri, kuros darbojas SQL Server datu bāzē.
Papildinformācija
Pārvietojot no viena servera, kurā darbojas SQL Server citā serverī, kurā darbojas SQL Server datu bāzi, var rasties nesaderība drošības identifikācijas numuru (SID) Vispārējā datu bāzes lietotājvārdu un lietotāja lietotājiem datu bāzē. Pēc noklusējuma SQL Server 7.0, SQL Server 2000 un SQL Server 2005 nodrošina sp_change_users_login saglabāti sistēmas procedūras, lai kartētu neatbilstošs šiem lietotājiem. Tomēr sp_change_users_login saglabātas procedūras var izmantot tikai kartēt standarta SQL Server pieteikšanos un jāveic tās kartēšana pa vienam lietotājam. Lai iegūtu papildinformāciju par sp_change_users_login saglabāts procedūru, skatiet tēmu "sp_change_users_login" SQL Server 7.0, SQL Server 2000 un SQL Server 2005 grāmatas tiešsaistē.
SQL Server 7.0 vai jaunāku versiju, varat saglabāt kartēšanu starp Vispārējā datu bāzes lietotājvārdi un lietotājiem lietotāja datu bāzē, izmantojot SID. Šī kartēšana ir vajadzīga, lai saglabātu pareizās atļaujas lietotājvārdi lietotāju datu bāzē. Šī kartēšana ir zaudētas, kad lietotājvārdi ir atļauja problēmas, kas ietver, bet nav saistītas ar šiem:
-
SQL servera pieteikšanās nepastāv uz jaunu serveri un lietotājs mēģina pieteikties, lietotājs var tikt parādīts šāds kļūdas ziņojums:
Serveris: Msg 18456, līmenis 16 valsts 1.
'%Ls' lietotāja pieteikšanās neizdevās. -
Ja SQL Server pieteikšanās pastāv uz jaunu serveri, bet SID Vispārējā datu bāzes atšķiras no datu bāzes lietotāja SID, lietotājs var pieteikties SQL Server veiksmīgi; Tomēr, ja lietotājs mēģina piekļūt šai datu bāzei, lietotājs var saņemt šādu kļūdas ziņojumu:
Serveris: Msg 916, Level 14 valsts 1 1
Servera lietotāja ' %. * ls' nav derīga lietotāja datu bāzē ' %. * ls'.Piezīme. SQL Server 2005, lietotājs var saņemt šādu kļūdas ziņojumu:
Servera lietotāja '%s' nav derīga lietotāja datu bāzē '%s'. Pievienojiet tā lietotāja kontu pirmo datu bāzē.
Lai iegūtu papildinformāciju par SQL Server 7.0 drošības modelis, skatiet rakstu krājumu "Microsoft SQL Server 7.0 drošības". Lai skatītu rakstu krājumu, apmeklējiet šo Microsoft Web vietu:
http://msdn2.microsoft.com/en-us/library/Aa226173(SQL.70).aspxLai iegūtu papildinformāciju par SQL Server 2000 drošības modeļa, noklikšķiniet uz šī raksta numura un lasiet Microsoft zināšanu bāzes rakstu:
322712 Microsoft SQL Server 2000 S322712 drošības līdzekļi un labākā prakse
Ierobežojumi
-
Ja lietotāji tabulā sysusers bez prefiksa datora nosaukumu vai domēnu pieder objektiem un šīs norādes lietojumprogrammās, izmantojot divas daļas nosaukums
lietotājvārds. objectname, lietojumprogramma var būt bojātas tā sp_sidmap saglabātas procedūras pārdēvē šiem lietotājiem ar prefiksu datora nosaukumu vai domēnu, kā redzams tabulā sysxlogins . Lai novērstu šo problēmu, pēc sp_sidmap iekļautā procedūra ir pabeigta, lietotājiem, kuri ietekmēja sysusers tabulas bijušās nosaukumus pārdēvēt vai primārā atbalsta sniedzēju. -
Šajā rakstā, ka aizstājvārdu. Jums ir manuāli pārvaldīt aizstājvārdu.
-
Ja standarta SQL servera pieteikšanās jauno SQL Server serverī nepastāv, varat pievienot pieteikšanās ar NULL paroli. Iespējams, mainās šīs pieteikšanās paroli.
-
Ja lietotājs ir izveidots lietotāju datu bāze ar nosaukumu, kas atšķiras no, kas parādās sysxlogins tabulā, nav iespējams zināt atbilstošā pieteikšanās lietotājam. Tādēļ pirms palaišanas sp_sidmap saglabātā procedūra:
-
Pārsūtīt objektus, kurai lietotājs pieder sagatavošanas datu bāzi.
-
Nomešanas lietotāja pievienot lietotājam, kura nosaukums ir pareizs, un pēc tam pārsūtiet atpakaļ visi objekti šim lietotājam.
-
-
Ja lietotājs ir atbilstošā pieteikšanās nedz prefiksu lokālā datora nosaukumu vai domēnu, tiek parādīts ziņojums šim lietotājam. Šis ziņojums norāda, ka ir vispirms ir jāpievieno lietotāja līmenī Windows un pēc tam pievienojiet to kā pieteikšanās SQL Server. Pēc tam vēlreiz jāpalaiž sp_sidmap saglabāts procedūru.
-
Ja lietotājs ir prefikss domēna nosaukums vai lokālā Windows servera nosaukums, bet atbilstošā pieteikšanās nepastāv sysxlogins tabulas, iekļautā procedūra mēģina pievienot šo kā jaunu sesiju SQL Server. Ja Windows lietotājs nepastāv, tā izvades ziņojums tiek ģenerēts rezultātu logā un pēc tam manuāli izveido pieteikšanās pēc tam, kad pirmo reizi tiek pievienots Windows lietotāja.
-
Ja ir vairāk nekā viena pieteikšanās lietotāja sysusers tabulas, tiek parādīts ziņojums failā rezultātu izvades un tajā ir uzskaitīti visi pieteikšanās ar pašu lietotājvārdu. Šajā brīdī, jums ir manuāli iestāties pārliecinieties, vai lietotājs atbilst tikai viens lietotājvārds.
Piemērs Ja sysusers tabulā ir lietotājs ar nosaukumu "johndoe" sysxlogins tabulā ir pieteikšanās ar nosaukumu "Test\johndoe" un "Test2\johndoe", palaižot iekļautā procedūra, tiek parādīts ziņojums, ka viens no lietotājiem ir vairāk nekā viena pieteikšanās un sistēmas administrators ir jāizvēlas viens. Šis ir tikai otrā iekļautā procedūra sp_prefix_sysusersname, kas šajā rakstā ir sniegts jābūt palaišanas reizē. Turklāt šī situācija ir detalizēti aprakstīta failā Readme. txt.
Parasto un integrēto pieteikšanos karte
Pēc tam, kad pārvietojat no vienā serverī, kurā darbojas SQL Server server citā serverī, kurā darbojas SQL Server server datu bāzi, veiciet šīs darbības minimāla lietotāja iejaukšanās:
SQL Server 7.0 un SQL Server 2000
-
Pārliecinieties, ka ir pieteikšanās sysxlogins tabulā katram lietotājam datu bāzes tabulā sysusers Vispārējā datu bāzē.
Piezīme. Lai pievienotu standarta SQL servera pieteikšanās, skatiet SQL Server tiešsaistes grāmatas tēmu "sp_addlogin". Pievienot integrētās SQL servera pieteikšanās, skatiet SQL Server tiešsaistes grāmatas tēmu "sp_grantlogin". -
Lejupielādējiet failu MapSids.exe un pēc tam izvērsiet Sp_sidmap.sql un Readme. txt failus.
-
Pieteikties serverī, kurā darbojas SQL Server, kā sistēmas administrators, un pēc tam palaidiet failu Sp_sidmap.sql lietotāja datu bāzē. Palaižot Sp_sidmap.sql failu izveido divas iekļautās procedūras, sp_sidmap un sp_prefix_sysusersname.
-
Pārliecinieties, ka datu bāzi nevar piekļūt cita lietotāja par to, kas darbojas manas darbības.
-
Pārliecinieties, ka Query Analyzer parāda rezultātus teksta formātā, nevis režģa formātā. Lai to izdarītu, nospiediet vai nu
CTRL ^ T atslēgām, vai noklikšķiniet uz vaicājumaun pēc tam noklikšķiniet uz teksta rezultātus. Tas ir ļoti svarīgi, lai jūs varētu apskatīt rezultātus un informatīvie ziņojumi logu un saglabājiet izvades teksta failu. Iespējams, ka šis fails vēlāk, lai novērstu dažu kartējumus. -
Jo nevar pārbaudīt, vai pareizi ir pagājis parametriem, pārliecinieties, vai pareizi nodot tos sp_sidmap saglabātas procedūras:
EXEC sp_SidMap @old_domain = old_domain_name,
@new_domain = new_domain_name,
@old_server = old_server_name,
@new_server = new_server_nameAizstājiet vērtības vecās un jaunās domēna nosaukumi un serveru nosaukumi pareizi.
-
Saglabāt rezultātus faila un pēc tam izpildiet norādījumus sniegtos failā Readme. txt.
Piezīme. Palaižot šo saglabāto procedūru, sysusers ir tikai tabula, izmaiņas datu bāzē. Atgriezties stāvoklī, kurā tiek startētas, atjaunot no dublējuma datu bāzes vai datu bāzes atkārtota pievienošana.
SQL Server 2005
Ja lietojat SQL Server 2005, izmantošana Ar pieteikšanās klauzula priekšraksta ALTER USER pārkartētu lietotājam jaunu sesiju. Lai iegūtu papildinformāciju, apmeklējiet šo Microsoft izstrādātāju tīkla (MSDN) vietni:
http://msdn.microsoft.com/en-us/library/ms176060.aspxPiezīme. Izmantojiet priekšrakstu ALTER USER Ar pieteikšanās noteikums, ir jālieto SQL Server 2005 2. servisa pakotni.
Atsauces
Lai iegūtu papildinformāciju, noklikšķiniet uz šiem rakstu numuriem un lasiet Microsoft zināšanu bāzes rakstus:
274188 tēmu "Savrupās lietotāju problēmu novēršana" tiešsaistes grāmatas ir nepilnīga
246133 kā lietotājvārdi un paroles pārsūtīšanai starp gadījumu SQL Server
168001 lietotāju pieteikšanās un/vai atļaujas kļūdas pēc atjaunošanas izmetes
PARAUGA 298897 : Mapsids.exe palīdz Map SID starp lietotāju un datu bāzes pamata, pārvietojot datu bāzi