我需要爲我的數據庫創建不同的用戶,每個用戶都可以訪問特定表中的子列。我意識到要做到這一點,我需要分別訪問列,因爲如果我授予對整個表的訪問權限,我不能撤消單個列權限。所以,我現在正在做的是給予的權限如下:在MySQL中單獨授予所有列的權限
GRANT SELECT (`col_1`, `col_2`, ... , `col_100`), SHOW VIEW ON my_db.my_table TO 'my_user'@'%';
這是繁瑣和雜亂,因爲我有大量列的,也是不太實際,因爲有可能會更改列列表在將來。有沒有辦法在沒有列出名字的情況下授予每列的權限?然後,我可以撤銷每個用戶的個人用戶。像這樣的:
GRANT SELECT (SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='my_db' AND `TABLE_NAME`='my_table'), SHOW VIEW ON my_db.my_table TO 'my_user'@'%';
(但這給了我一個語法錯誤,所以它顯然不是我所需要的)。有沒有辦法做到這一點?
難道你不能使用像HeidiSQL這樣的工具嗎? –
我需要提供SQL,以便其他用戶可以重複使用,因此不幸的是GUI方法無法正常工作。 – Lisa
HeidiSQL打印它在控制檯中執行的每個命令。您可以將其複製並粘貼到文本編輯器中 - 然後找到並替換用戶名。 –