使用者尋求允許使用者完全存取除特定表之外的資料庫的解決方案,在該表中他們應該僅具有SELECT 權限。
儘管嘗試授予資料庫的所有權限然後專門授予所需表的 SELECT 權限,或者撤銷插入、更新和刪除權限,錯誤仍然存在。
動態授予語句產生:
為了簡化流程,您可以使用下列SELECT CONCAT 查詢來產生必要的GRANT 語句:
<code class="sql">SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;") FROM information_schema.TABLES WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";</code>
步驟:
撤銷使用者對資料庫的所有權限:
<code class="sql">REVOKE ALL PRIVILEGES ON db.* FROM user@localhost; </code>
範例:
REVOKE ALL PRIVILEGES ON my_db.* FROM my_user@localhost; SELECT CONCAT("GRANT UPDATE ON my_db.", table_name, " TO my_user@localhost;") FROM information_schema.TABLES WHERE table_schema = "my_db" AND table_name <> "special_table";
以上是如何授予MySQL資料庫除單一表之外的所有權限?的詳細內容。更多資訊請關注PHP中文網其他相關文章!