MySQL許可權篇討論之許可權收回之級聯影響
比如,A把許可權X授予了B(with grant option),B再把X許可權授予了C。
那麼A把B的X許可權收回之後,C的X許可權是否受到影響?答案是不影響。
D:\temp>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.11-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> create user 'ut02'@'%';
Query OK, 0 rows affected (0.09 sec)
mysql> alter user 'ut02'@'%' identified by '20127163';
Query OK, 0 rows affected (0.38 sec)
mysql> show grants for 'ut02'@'%';
+----------------------------------+
| Grants for
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql>
授予[email protected]%某個許可權:
mysql> grant select on test.t_area to 'ut01'@'%' with grant option;
Query OK, 0 rows affected (0.04 sec)
mysql> show grants for 'ut01'@'%';
+-----------------------------------------------------------------+
| Grants for
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut01'@'%' WITH GRANT OPTION |
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
此時,使用[email protected]%使用者將這個許可權授予[email protected]%使用者:
C:\Users\Administrator>mysql -uut01
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.11-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant select on test.t_area to 'ut02'@'%';
Query OK, 0 rows affected (0.04 sec)
mysql>
此時,[email protected]%的許可權:
mysql> show grants for 'ut02'@'%';
+-----------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut02'@'%' |
+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql>
並且[email protected]%使用者能夠select這個物件:
mysql> use test
Database changed
mysql> select count(*) from test.t_area;
+----------+
| count(*) |
+----------+
| 228 |
+----------+
1 row in set (0.05 sec)
mysql>
現在,將[email protected]%的select許可權收回:
mysql> revoke select on test.t_area from 'ut01'@'%';
Query OK, 0 rows affected (0.10 sec)
mysql> show grants for 'ut02'@'%';
+-----------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut02'@'%' | #[email protected]%使用者並沒有受到影響
+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for 'ut01'@'%';
+----------------------------------------------------------------+
| Grants for [email protected]% |
+----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT USAGE ON `test`.`t_area` TO 'ut01'@'%' WITH GRANT OPTION | #grant option許可權還保留在
+----------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> revoke grant option on test.t_area from 'ut01'@'%'; #一起收回
Query OK, 0 rows affected (0.05 sec)
mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for [email protected]% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> show grants for 'ut02'@'%';
+-----------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut02'@'%' | #可見,許可權收回並不影響級聯
+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql>
但是b授予c許可權時with grant option了呢?繼續看:
D:\temp>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.7.11-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create user 'ut01'@'%';
Query OK, 0 rows affected (0.06 sec)
mysql> alter user 'ut01'@'%' identified by '20127163';
Query OK, 0 rows affected (0.03 sec)
mysql> create user 'ut02'@'%';
Query OK, 0 rows affected (0.05 sec)
mysql> alter user 'ut02'@'%' identified by '20127163';
Query OK, 0 rows affected (0.05 sec)
mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for [email protected]% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> show grants for 'ut02'@'%';
+----------------------------------+
| Grants for [email protected]% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> grant select on test.t_area to 'ut01'@'%' with grant option;
Query OK, 0 rows affected (0.05 sec)
mysql>
此時登入[email protected]%使用者,並授予該許可權給[email protected]%使用者:
C:\Users\Administrator>mysql -uut02
ERROR 1045 (28000): Access denied for user 'ut02'@'localhost' (using password: YES)
C:\Users\Administrator>mysql -uut01
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.7.11-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant select on test.t_area to 'ut02'@'%' with grant option;
Query OK, 0 rows affected (0.06 sec)
mysql>
再檢視[email protected]%的許可權:
mysql> show grants for 'ut02'@'%';
+-----------------------------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut02'@'%' WITH GRANT OPTION |
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
再將[email protected]%的grant option許可權回收:
mysql> revoke grant option on test.t_area from 'ut01'@'%';
Query OK, 0 rows affected (0.06 sec)
mysql> show grants for 'ut01'@'%';
+-----------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut01'@'%' | #[email protected]%的grant option已經被回收
+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for 'ut02'@'%';
+-----------------------------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut02'@'%' WITH GRANT OPTION | #但是[email protected]%的grant option許可權依然存在
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
再繼續將select許可權徹底revoke:
mysql> revoke select on test.t_area from 'ut01'@'%';
Query OK, 0 rows affected (0.05 sec)
mysql> show grants for 'ut01'@'%';
+----------------------------------+
| Grants for [email protected]% |
+----------------------------------+
| GRANT USAGE ON *.* TO 'ut01'@'%' |
+----------------------------------+
1 row in set (0.00 sec)
mysql> show grants for 'ut02'@'%';
+-----------------------------------------------------------------+
| Grants for [email protected]% |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ut02'@'%' |
| GRANT SELECT ON `test`.`t_area` TO 'ut02'@'%' WITH GRANT OPTION | #可見依然沒有影響
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
mysql裡的許可權要注意控制,否則就會出現上述情況。
相關推薦
MySQL許可權篇討論之許可權收回之級聯影響
比如,A把許可權X授予了B(with grant option),B再把X許可權授予了C。 那麼A把B的X許可權收回之後,C的X許可權是否受到影響?答案是不影響。 D:\temp>mysql Welcome to the MySQL monitor. Command
MySQL入門篇(五)之高可用架構MHA
數據節點 ability ast 圖片 故障轉移 5.5 架構 日本 丟失 一、MHA原理 1、簡介: MHA(Master High Availability)目前在MySQL高可用方面是一個相對成熟的解決方案,它由日本DeNA公司youshimaton(現就職於
第十五節:pandas之concat()級聯
pandas 進行 spa span 函數 行合並 http afr dataframe Pandas 提供了concat()函數可以輕松的將Series、DataFrame對象進行合並在一起。 pandas.concat(obj , axis=0 , join="inne
MYSQL數據庫中的主從級聯復制的實現
服務器管理 配置文件 ble 添加 命令 方便 列表 nod 從服務器 主服務ip:192.168.1.107 級聯服務ip:192.168.1.110 從服務ip:192.168.1.106 一.主服務器設置: 1.修改配置文件 vim /etc/my.cn
MySQL許可權篇之DROP
DROP許可權呢是刪除物件,擁有該許可權的使用者可以刪除指定範圍內的物件(schema、表和檢視)。 不能刪除除這些物件之外的其他物件。 mysql> show grants for 'ut01'@'%'; +-----------------------------
mysql學習筆記之許可權
MySQL許可權的定義 01.作用物件 庫、表 02.許可權 細化到具體命令 03.歸屬 每次設定只能有一個“屬主”。沒有屬組或其他 概念 grant all on test.* to [email protected]‘10.0.0.%
MySQL之許可權管理
1:伺服器首先會檢查你是否允許連線。因為建立使用者的時候會加上主機限制,可以限制成本地、某個IP、某個IP段、以及任何地方等。 2:如果你能連線,Mysql會檢查你發出的每個請求,看你是否有足夠的許可權。 mysql 許可權如下: 許可權 許可權級
MySQL之許可權管理(mysql.user表詳解)
INSERTINTO `user`(`Host`,`User`,`Password`,`Select_priv`,`Insert_priv`,`Update_priv`,`Delete_priv`,`Create_priv`,`Drop_priv`,`Reload_priv`,`Shutdown_priv`,
yii2搭建完美后臺並實現rbac許可權控制案例--之左側選單子級無法高亮的問題
新增角色是屬於角色這個選單的,如何在執行新增角色這個操作時讓角色這個選單處於選中狀態呢?adminlte左側導航的Create,View等action不能定位到index的模組(左側二級導航不能展開定位)如果你是按照我們上文的教程來的,那接下來所要說明的問題應該不是問題,先
MySQL學習之:使用者管理(新增使用者,刪除使用者,新增許可權,檢視許可權,密碼等)
什麼是規劃? 資料庫物件與資料庫使用者賬戶的相關聯 1. 新建用於規劃 CREATE SCHEMA [SCHEMA_NAME] [USER_ID] [ ]; 2. 刪除規劃 DROP SCHEMA SCHEMA_NAME {RESTRICT | CASCADE} 3. 調整
C++精進篇(十)之―封裝、繼承、多型及訪問許可權及物件建立詳解
面向物件的三個基本特徵是:封裝、繼承、多型。其中,封裝可以隱藏實現細節,使得程式碼模組化;繼承可以擴充套件已存在的程式碼模組(類);它們的目的都是為了——程式碼重用。而多型則是為了實現另一個目的——介面重用!
sed和awk之sed篇(含sed高級用法)
清空 pre 需要 amp 打印 多條 邏輯 help n) (原創文章,謝絕轉載~) sed(stream editor)和 awk 是linux環境下處理文本、數據的強大“利器”,sed對數據列的處理稍遜,awk則更似一門語言,control flow的語法基本和c語言
mysql數據庫-查詢優化之索引篇
mys 結構 details 速查 dex 主鍵 alt key 數據結構 定義:是數據庫中專門用於幫助用戶快速查詢數據的一種數據結構。類似於字典中的目錄,查找字典內容時可以根據目錄查找到數據的存放位置,然後直接獲取即可。 分類:普通索引,唯一性索引,全文索引,單列索引,多
PythonWeb全棧工程師必備技能之<MySQL開發篇>
MySQL 數據庫 Python開發 emmm...接下來還有<MySQL運維篇>...(1)數據庫的CURD:--基本使用:1.選擇數據庫: use 數據庫名稱;mysql> use test;Database changed2.創建數據庫: create dat
mysql給資料庫授權與收回許可權--------dcl
使用者授權語法 grant 許可權1,許可權2... on 資料庫名.* to 使用者名稱 @IP地址或% 開啟新建立的名為“test”的資料庫後 用 show databases; 的命令 看內部的資料結果如下圖,其實在名為test的資料庫中 還有更多的資料庫
mysql 開發進階篇系列 51 許可權與安全(許可權表user,db詳細介紹 )
一.概述 mysql 的許可權系統主要用來對連線到資料庫的使用者進行許可權驗證,以此來判斷此使用者是否屬於合法使用者,以及合法使用者給予的相應資料庫許可權。下面將介紹許可權系統的工作原理,以及將要熟練掌握賬號的管理和使用方法(mysql版本 5.7)。 1.1 許可權系統的
Django 之 許可權管理的外掛
一、功能分析: 一個成熟的web應用,對許可權的控制、管理是不可少的;對於一個web應用來說是什麼許可權? 這要從web應用的使用說起,使用者在瀏覽器輸入一個url,訪問server端,server端返回這個url下對應的資源; 所以 對於使用者來說 1個可以訪問url 就等於1個許可權
Linux指令之許可權
許可權的基本介紹: 1.rwx許可權詳解: (1)rwx作用到檔案 ①r:表示可讀:可以讀取,檢視 ②w:表示可寫:可以修改,但是不代表可以刪除該檔案,刪除一個檔案的前提條件是對該檔案所在的目錄有寫許可權,才能刪除該檔案。 ③x:表示可執行:可以被執行 (2)rwx作用到目錄 ①r:表示可
Android之許可權(permission)大全
一、說明 Android 6.0開始,Google將許可權分為兩類,一類是Normal Permission, 這類許可權一般不涉及使用者隱私,是不需要使用者進行授權的,比如手機震動、訪問網路等;另一類是Dangerous Permission,一般是涉及到使用者隱私的,需要使用者進行授權,比如
Linux基礎之許可權操作
Linux許可權管理是Linux中一個十分重要的概念,也是系統安全性的重要保障。這裡主要介紹Linux的基本許可權和預設許可權,通過理論講解與實驗演示,可以詳細瞭解到許可權的相關操作及其重要性。 檔案許可權 [[email protected] ~]# ls -l /etc/passwd-rw-