mysql寫文件權限,mysql的權限

本文目錄一覽:

mysql 權限設置

背景

在了解動態權限之前,我們先回顧下 MySQL 的權限列表。

權限列表大體分為服務級別和表級別,列級別以及大而廣的角色(也是MySQL 8.0 新增)存儲程序等權限。我們看到有一個特殊的 SUPER 權限,可以做好多個操作。比如 SET 變量,在從機重新指定相關主機信息以及清理二進制日誌等。那這裡可以看到,SUPER 有點太過強大,導致了僅僅想實現子權限變得十分困難,比如用戶只能 SET 變量,其他的都不想要。那麼 MySQL 8.0 之前沒法實現,權限的細分不夠明確,容易讓非法用戶鑽空子。

那麼 MySQL 8.0 把權限細分為靜態權限和動態權限,下面我畫了兩張詳細的區分圖,圖 1 為靜態權限,圖 2 為動態權限。

圖 1- MySQL 靜態權限的權限管理圖

圖 2-動態權限圖

那我們看到其實動態權限就是對 SUPER 權限的細分。 SUPER 權限在未來將會被廢棄掉。

我們來看個簡單的例子,

比如, 用戶 ‘ytt2@localhost’, 有 SUPER 權限。

mysql show grants for ytt2@’localhost’;+———————————————————————————+| Grants for ytt2@localhost                                                       |+———————————————————————————+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+———————————————————————————+1 row in set (0.00 sec)

但是現在我只想這個用戶有 SUPER 的子集,設置變量的權限。那麼單獨給這個用戶賦予兩個能設置系統變量的動態權限,完了把 SUPER 給拿掉。

mysql grant session_variables_admin,system_variables_admin on *.* to ytt2@’localhost’;Query OK, 0 rows affected (0.03 sec)mysql revoke super on *.* from ytt2@’localhost’;Query OK, 0 rows affected, 1 warning (0.02 sec)

我們看到這個 WARNINGS 提示 SUPER 已經廢棄了。

mysql show warnings;

+———+——+———————————————-+

| Level   | Code | Message                                      |

+———+——+———————————————-+

| Warning | 1287 | The SUPER privilege identifier is deprecated |

+———+——+———————————————-+

1 row in set (0.00 sec)`

mysql show grants for ytt2@’localhost’;

+———————————————————————————–+

| Grants for ytt2@localhost                                                         |

+———————————————————————————–+

| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost          |

| GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |

+———————————————————————————–+

2 rows in set (0.00 sec)

當然圖 2 上還有其它的動態權限,這裡就不做特別說明了。

怎麼給mysql用戶File權限

查看MySQL用戶權限:

show grants for 你的用戶比如:

show grants for root@’localhost’;Grant 用法GRANT USAGE ON *.* TO ‘discuz’@’localhost’ IDENTIFIED BY PASSWORD ‘*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB’;

GRANT ALL PRIVILEGES ON `discuz`.* TO ‘discuz’@’localhost’;

我先按我的理解解釋一下上面兩句的意思

建立一個只可以在本地登陸的 不能操作的用用戶名 discuz 密碼為 ***** 已經加密了的

然後第二句的意思是 ,給這個discuz用戶操作discuz數據庫的所有權限使用GRANTGRANT命令用來建立新用戶,指定用戶口令並增加用戶權限。其格式如下:

mysql GRANT privileges ON what

– TO user [IDENTIFIED BY password]

– [WITH GRANT OPTION];

正如你看到的源碼天空

,在這個命令中有許多待填的內容。讓我們逐一地對它們進行介紹,並最終給出一些例子以讓你對它們的協同工作有一個了解。

privileges是一個用逗號分隔的你想要賦予的MySQL用戶權限的列表。你可以指定的權限可以分為三種類型:

數據庫/數據表/數據列權限: Alter: 修改已存在的數據表(例如增加/刪除列)和索引。

Create: 建立新的數據庫或數據表。

Delete: 刪除表的記錄。

Drop: 刪除數據表或數據庫。

INDEX: 建立或刪除索引。

Insert: 增加表的記錄。

Select: 顯示/搜索表的記錄。

Update: 修改表中已存在的記錄。

全局管理MySQL用戶權限:

file: 在MySQL服務器上讀寫文件。

PROCESS: 顯示或殺死屬於其它用戶的服務線程。

RELOAD: 重載訪問控制表,刷新日誌等。

SHUTDOWN: 關閉MySQL服務。

特別的權限:

ALL: 允許做任何事(和root一樣)。

MYSQL提權(LINUX)

select @@global.secure_file_priv;

查看MySQL服務器的文件讀寫權限

如果是NULL就是完全禁止

udf提權用到的so文件(linux)在kali下默認集成,路徑為 /usr/share/sqlmap/udf/mysql/linux/64(32)

或者 searchsploit mysql udf

把對應的內容編譯出來

mysql創建函數命令

原創文章,作者:SMHN,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/144422.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SMHN的頭像SMHN
上一篇 2024-10-25 13:54
下一篇 2024-10-25 13:54

相關推薦

發表回復

登錄後才能評論