我有誰有權訪問多個數據庫MySQL服務器iemysql分貝,INFORMATION_SCHEMA分貝,測試數據庫等刪除從用戶
上是否有可能限制該用戶訪問權限的用戶查看戰略數據庫的能力這樣一個「SHOW DATABASES
」命令甚至不會列出這些戰略數據庫?
我有誰有權訪問多個數據庫MySQL服務器iemysql分貝,INFORMATION_SCHEMA分貝,測試數據庫等刪除從用戶
上是否有可能限制該用戶訪問權限的用戶查看戰略數據庫的能力這樣一個「SHOW DATABASES
」命令甚至不會列出這些戰略數據庫?
每MySQL的數據庫顯示的文檔:
你只能看到你有某種特權,除非你有全局SHOW DATABASES權限的數據庫。你也可以使用mysqlshow命令獲得這個列表。
如果使用--skip-show-database選項啓動服務器,則除非具有SHOW DATABASES權限,否則不能使用此語句。
MySQL將數據庫實現爲數據目錄中的目錄,因此此語句僅列出該位置中的目錄。但是,輸出可能包含與實際數據庫不對應的目錄名稱。
您必須設置Show_db_priv
它
的SHOW DATABASES權限允許賬戶通過發佈SHOW DATABASE語句來看看數據庫名。沒有此權限的帳戶只能看到他們擁有某些權限的數據庫,並且如果服務器是使用--skip-show-database選項啓動的,則完全不能使用該語句。請注意,任何全局特權都是數據庫的特權。
http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_show-databases
默認情況下,所有用戶都可以看到一個information_schema
表。它不是真正的表格,而更像是隻讀視圖的集合。對於每個用戶,它只顯示用戶有權訪問的表和對象的值。如果您的用戶通過phpMyAdmin訪問,則可以通過在配置文件中添加一行來隱藏它。事情是這樣的......
$cfg['Servers'][$i]['hide_db'] = '^information_schema$';
此外,默認情況MySQL允許所有用戶看到一個名爲「測試」數據庫,並以「TEST_」開頭的數據庫。這些行爲由mysql
數據庫的db
表中的行控制。在該表中搜索Db
字段中以「test」開頭的條目,您將看到它們。他們在Host
字段中有一個「%」字段,而在空白User
字段中。有關更多信息,請參閱第2.10.2節。在本頁的標題爲「確保測試數據庫安全」下的MySQL文檔「保證初始MySQL帳戶安全」... http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html。