常用的方法如下:
-
SHOW TABLES LIKE '%tb_bp_d_case%';
-
select?
TABLE_NAME
?from?INFORMATION_SCHEMA
.TABLES
?whereTABLE_SCHEMA
='dbname' and?TABLE_NAME
='tablename' ;
需要考慮的是權(quán)限問(wèn)題
mysql 的授權(quán)分為 5 層:全局層級(jí),數(shù)據(jù)庫(kù)層級(jí),表層級(jí),列層級(jí),子程序?qū)蛹?jí);
SHOW TABLES,并不在priv_type列表中,也就是說(shuō)只要能連接到mysql上都可以執(zhí)行。
如果用戶權(quán)限是 表層級(jí)或者是列層級(jí) 的,那么 show tables; 只能看到有權(quán)限的表名。
如果 查詢 INFORMATION_SCHEMA 庫(kù)的話,也是一樣的,只能查詢到有權(quán)限的表。
如果說(shuō)一個(gè)用戶的權(quán)限不是數(shù)據(jù)庫(kù)層級(jí)以上的話就會(huì)導(dǎo)致結(jié)果不可信賴。
類似下邊的授權(quán)就不用擔(dān)心這個(gè)問(wèn)題(priv_type隨便什么都行):
grant priv_type on dbName .* to ..... ? --數(shù)據(jù)庫(kù)層級(jí)
-- or
grant priv_type on *.* to ..... ? ? ? ? --全局層級(jí)
==============================
如果上邊寫的沒(méi)看明白,那么繼續(xù)看下邊一個(gè)例子:
如:數(shù)據(jù)庫(kù)有 test1,test2 ,...
test1 庫(kù)中有表,abc ,ab ,abb, a 四個(gè)表
授權(quán)語(yǔ)句:
grant insert on test1 . a to user1@ "%" Identified by "user1"
當(dāng)用 user1 連接后,選擇 test1 數(shù)據(jù)庫(kù)后執(zhí)行:
show tables; -- 結(jié)果只要 a 一個(gè)表。同樣的 show tables like "a%"; --結(jié)果也只有表 a
select TABLE_NAME from INFORMATION_SCHEMA . TABLES where TABLE_SCHEMA = 'test1' ; -- 結(jié)果也是只要一個(gè) 表 a
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
