Kokkuvõte

Selles artiklis kirjeldatakse, kuidas konfigureerida Microsoft Windowsi tasemel SQL serveri agendi puhverserveri konto, mida kasutatakse SQL-i logimiste jaoks, mis ei ole sysadmin fikseeritud serveri rolli liikmed. Lisaks sisaldab artikkel viiteid lisateabele, mis aitavad teil lahendada probleeme, mis võivad ilmneda, kui proovite puhverserveri kontot häälestada.

SISSEJUHATUS

Xp_cmdshell laiendatud salvestatud protseduur viitab Windowsi käsule Shell Microsoft SQL Server 2000. Kui xp_cmdshell laiendatud salvestatud protseduuri sooritab sysadmin fikseeritud serveri rolli liige, töötab käsu Shell Windowsi toiming SQL serveri Windowsi teenusekonto turbe kontekstis. Kui SQL Server töötab näiteks Windowsi sisselogimise all, millel on arvutis administraatoriõigused, saab käsuviiba kasutaja, kes avab xp_cmdshell laiendatud salvestatud protseduuri, juurdepääsu Windowsi kohaliku administraatorina. Vaikimisi antakse luba xp_cmdshell laiendatud salvestatud protseduuri täitmiseks ainult sysadmin fikseeritud serveri rolli liikmetele. See õigus aitab takistada õiguste eskaleerumist. Kui soovite alustada uute Windowsi protsesside kasutamist vähendatud õiguste tasemega, saate kasutada SQL serveri agendi puhverserveri kontot, et konfigureerida Windowsi konto vastava õiguste tasemega.

Lisateave

Kui proovite käivitada xp_cmdshell laiendatud salvestatud protseduuri SQL serveri sisselogimisest, mis pole sysadmin serveri rolli liige ja SQL serveri agendi puhverserveri konto pole õigesti häälestatud, võidakse kuvada tõrketeated, mis sarnanevad järgmisega:

MSG 50001, tase 1, State 50001 xpsql. cpp: Error 997 alates GetProxyAccount Real 499

MSG 50001, tase 1, State 50001 xpsql. cpp: Error 317 alates GetProxyAccount Real 499

MSG 50001, tase 1, State 50001 xpsql. cpp: Error 0 alates GetProxyAccount Real 499

MSG 50001, tase 1, State 50001 xpsql. cpp: error 87 alates GetProxyAccount Real 499

Kui teil on vaja lasta sysadmin kasutajatel käitada xp_cmdshell laiendatud salvestatud protseduuri SQL Server 2000, peate konfigureerima puhverserveri konto ja SQL serveri käivitamise konto kohaliku administraatorite rühma liige. Kui SQL Server täidab töökohti või käske kasutajate jaoks, kes ei ole Sysadmin fikseeritud serveri rolli liikmed, kasutab SQL serveri agent ja xp_cmdshell laiendatud salvestatud protseduuri puhverserveri kontot. Puhverserveri konto Windowsi turvalisuse mandaat salvestatakse kohaliku julgeolekuasutuse (LSA) riigisaladuse andmebaasi. Sellele teabele pääseb juurde ainult Windowsi administraatorid. Seega, kui SQL serveri käivitamise konto pole kohalike administraatorite rühma liige, ei saa kasutaja puhverserveri kontona sisselogimiseks talletada ega hankida Windowsi turvalisuse mandaati ning xp_cmdshell laiendatud salvestatud protseduur nurjub. Kui soovite, et sysadmin kasutajad ei saaks käitada xp_cmdshell laiendatud salvestatud protseduuri, peab SQL Serveri konto olema kohaliku administraatorite rühma liige. Puhverserveri konto konfigureerimiseks SQL serveri sisselogimise jaoks, mis pole sysadmin fikseeritud serveri rolli liikmed, kasutage ühte järgmistest meetoditest.

1. meetod: kasutage SQL Server Enterprise Manageri

Windowsi konto konfigureerimine

Windowsi konto määramiseks, et lubada sysadmin kasutajatel käivitada xp_cmdshell laiendatud salvestatud protseduur, tehke järgmist.

  1. Käivitage SQL Server Enterprise Manager.

  2. Laiendage SQL Server Enterprise Manageris Microsoft SQL Serveritja seejärel laiendage jaotist SQL Server Group.

  3. Laiendage SQL Serveri eksemplari, mille jaoks soovite puhverserveri konto häälestada.

  4. Laiendage jaotist haldus, paremklõpsake valikut SQL Serveri Agentja seejärel klõpsake käsku Atribuudid.

  5. Klõpsake dialoogiboksis SQL serveri agendi atribuudid vahekaarti töösüsteem .

  6. Tühjendage jaotises mitte-SysAdmin töö samm proxy konto, et tühjendada ainult SysAdmin priviledges kasutajad saavad täita CmdExec ja ActiveScripting töö toiminguid .

  7. Tippige dialoogiboksis SQL Server Agent proxy Account(kasutajanimi) Windowsi konto nimi väljale kasutaja nimi.

  8. Tippige väljale parool Windowsi parool.

  9. Tippige väljale Domain (Domeen ) domeen, mille liige Windowsi konto on, ja seejärel klõpsake kaks korda nuppu OK .

SQL serveri sisselogimise konto lisamine

Kui soovite lisada SQL serveri sisselogimise konto, mille soovite anda xp_cmdshell laiendatud salvestatud protseduuri täitmiseks, tehke järgmist.

  1. Laiendage SQL serveri Enterpise halduristurvet.

  2. Paremklõpsake paanil sisselogimised SQL serveri sisselogimise kontot, millele soovite õigused anda, ja seejärel klõpsake käskuAtribuudid.Märkus. Kui kontot pole veel lisatud, saate luua sisselogimise kontona Windowsi puhverserveri konto.

  3. Klõpsake dialoogiboksis SQL serveri sisselogimise atribuudid vahekaarti Accessi andmebaas .

  4. Valige väljal Määrake, millist andmebaasi saab selle sisselogimise loendiga kasutada, märkige põhiandmebaasi jaoks ruut Luba ja seejärel klõpsake nuppu OK.

  5. Laiendage andmebaase, laiendagejuhtslaidija seejärel klõpsake käsku Laienda salvestatud protseduure.

  6. Otsige üles ja paremklõpsakexp_cmdshell laiendatud salvestatud protseduuri ja seejärel klõpsake käskuAtribuudid.

  7. Klõpsake dialoogiboksis laiendatud salvestatud protseduuri atribuudid nuppu permissions (permissions).

  8. Klõpsake selle SQL serveri sisselogimise konto ruutu exec , millele soovite anda loa, ja seejärel klõpsake kaks korda nuppu OK .

Meetod 2: Transact-SQL-skripti käitamine

Käivitage järgmine Transact-SQL-i skript, mis võimaldab Windowsi kontol käivitada xp_cmdshell laiendatud salvestatud protseduuri.

-- Set database to master.USE masterGO-- Add a valid Windows account as proxy account.EXECUTE xp_sqlagent_proxy_account N'SET'                        , N'<DomainName>'                        , N'<WindowsAccount>'                        , N'<WindowsPassword>'GO-- Get the proxy account to determine whether it is set up correctly. EXECUTE xp_sqlagent_proxy_account N'GET'GO-- Enable non-system administrators to run the job and to execute xp_cmdshell.EXECUTE msdb..sp_set_sqlagent_properties @sysadmin_only = 0GO

Märkus. Selles skriptis <domeeninimi> domeeni, mille liige Windowsi konto on. <WindowsAccount> on Windowsi konto nimi. <WindowsPassword> on Windowsi konto parool. Kui soovite lisada SQL serveri sisselogimise konto, millele soovite anda loa xp_cmdshell laiendatud salvestatud protseduuri käivitamiseks, käivitage järgmine TRANSACT-SQL-i skript.

USE masterGO-- Grant database access to the SQL Server login account that you want to provide access.EXEC sp_grantdbaccess '<SQLLogin>'GO-- Grant execute permission on xp_cmdshell to the SQL Server login account.GRANT exec ON xp_cmdshell TO <SQLLogin>GO

Märkus. Selles skriptis <SQLLogin> on SQL serveri logimine, mille soovite anda loa xp_cmdshell laiendatud salvestatud protseduuri täitmiseks.Märkus. Puhverserveri konto on Windowsi konto, mille turbe kontekstis käitatakse SQL serveri agendi töökohti või käsurea käske. Kui häälestate SQL serveri agendi puhverserveri konto jaoks Windowsi konto, peate andma konto Windowsi tasemel "Logi sisse pakett-tööna" kasutaja õigus.

Viited

Lisateavet xp_cmdshell laiendatud salvestatud protseduuri kohta leiate SQL Server Books Online ' i teemast "TRANSACT-SQL-i viide". SQL serveri agendi puhverserveri konto kohta lisateabe saamiseks külastage järgmisi Microsoft Developer Networki (MSDN) veebisaite.

xp_sqlagent_proxy_accounthttp://msdn2.microsoft.com/en-us/Library/aa260700 (SQL. 80). aspxxp_cmdshellhttp://msdn2.microsoft.com/en-us/Library/aa369561.aspxWindowsi teenuste kontode häälestamisekshttp://msdn2.microsoft.com/en-us/Library/aa176564 (SQL. 80). aspxLisateavet selle kohta, kuidas määrata puhverserveri kontol vastavaid lube, klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

283811 SQL serveri või SQL serveri agendi teenuse konto muutmine SQL-i Enterprise Manageri SQL Server 2000 või SQL Server Configuration Manageris SQL Server 2005 kasutamata

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Kui rahul te keelekvaliteediga olete?
Mis mõjutas teie hinnangut?

Täname tagasiside eest!

×