快速定位DB中列对应的表

2014-08-25 11:21:44 30 1174
有时候在脱数据量比较多比较杂乱数据库的时候,如何快速定位到自己想要的数据,如何定位自己想要的列在什么表的具体位置,这里提供一个解决方案,可能很多人都知道,知道的就略过,请轻喷 :)

mysql 数据库利用 information_schema; 来快速定位,前提版本支持

mysql> select table_schema,table_name,column_name from information_schema.column
s where column_name like '%password%' ;


这里快速定位到 password列的 位置

同样mssql 数据库可以利用Sysobjects  系统表

Select *
From sysobjects s
Where Exists(
Select *
From syscolumns
Where ID = s.ID and name like '%user%'
)

查询列明中包含user的表

ps:如有错误请及时指正 :)

关于作者

评论30次

要评论?请先  登录  或  注册
  • 30楼
    2014-9-1 16:13

    注入猜表名的时候用的比较多~

  • 29楼
    2014-9-1 10:43

    嗯,确实有时候好多库好多表,找起来很累。

  • 28楼
    2014-8-28 13:03
    intosec

    Oracleselect column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns ;

    1

    收藏一下

  • 27楼
    2014-8-28 02:29

    老版本的没有这个吧 这个是什么版本加进去的记不清了

  • 26楼
    2014-8-27 20:41

    2楼的用过 楼主的方法收藏了 谢谢

  • 25楼
    2014-8-27 20:13

    我记得mssql高版本好像也有information_schema的,可以用类似Mysql的方法查忘记是2005还是2008了

  • 24楼
    2014-8-27 19:53
    intosec

    Oracleselect column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns ;

    1
    Audit0r

    SELECT owner, table_name FROM all_tab_columns WHERE column_name LIKE ‘%PASS%’; Oracle 用的通常这个

    2

    差不多,all_tab_columns会列出系统表的列

  • 23楼
    2014-8-26 18:32
    iceker

    mssql的情况下呢?

    1
    Audit0r

    同样mssql 数据库可以利用Sysobjects 系统表Select * From sysobjects s Where Exists( Select * From syscolumns Where ID = s.ID and name like '%user%')查询列明中包含user的表帖中写了啊

    2

    谢谢 没注意看

  • 22楼
    2014-8-26 17:08

    核心就是访问系统表,然后匹配关键字段名。没法加入正则。如果有正则就完美了。

  • 21楼
    2014-8-26 17:06
    anlfi

    的确有人发过https://www.t00ls.net/thread-26864-1-1.html大同小异

    1

    好东西!

  • 20楼
    2014-8-26 17:00
    wefgod

    where column_name like '%password%' ;为什么不加%?

    1
    Audit0r

    这里只是 一个思路,有的列明也有可能叫 pwd 等等,这个根据平时自己的经验进行匹配,关于sql like 用法 可自行百度,语句是死人是活的。 :)

    2

    明白明白!

  • 19楼
    2014-8-26 16:59
    wefgod

    where column_name like '%password%' ;为什么不加%?

    1
    Jumbo

    LZ为了更加准确吧,他在下面的user中就加了

    2

    这样啊,没注意看,抱歉

  • 18楼
    2014-8-26 16:03

    好思路,但是可能有的库知道了,但是看不到,权限问题

  • 17楼
    2014-8-26 12:25

    嗯,这方法不错,提高效率

  • 16楼
    2014-8-26 11:42
    intosec

    Oracleselect column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns ;

    1

    SELECT owner, table_name FROM all_tab_columns WHERE column_name LIKE ‘%PASS%’; Oracle 用的通常这个

  • 15楼
    2014-8-26 09:53

    技术不难,关键是好思路能把基本的技术给有机结合起来

  • 14楼
    2014-8-26 00:48

    这个和我用的貌似不像,但先收藏。感谢。

  • 13楼
    2014-8-25 23:24

    Oracle

    select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name='表名' and column_name like '%大写列名%']; 

  • 12楼
    2014-8-25 16:26
    iceker

    mssql的情况下呢?

    1

    同样mssql 数据库可以利用Sysobjects系统表Select * From sysobjects s Where Exists( Select * From syscolumns Where ID = s.ID and name like '%user%')查询列明中包含user的表帖中写了啊

  • 11楼
    2014-8-25 16:21

    mssql的情况下呢?