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-tw/n/144422.html

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

相關推薦

發表回復

登錄後才能評論