[MySQL光速入門]031 許可權管理

貓哥的技術部落格發表於2019-04-18

什麼是許可權管理

不同的身份, 可以幹不同的事情

新增加的使用者, 許可權很少

我們先新建使用者dog

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
複製程式碼

image.png

image.png

image.png

image.png

直接例項

1. 對新建使用者dog在library.reader表上授予select和delete許可權

沒有許可權時, 直接查詢會報錯

> 1142 - SELECT command denied to user 'dog'@'localhost' for table 'reader'
> 時間: 0s
複製程式碼

賦予許可權

use library;
grant select,DELETE on reader to dog@localhost;
複製程式碼

image.png

但是insert操作依然報錯, 因為沒有許可權

INSERT INTO `library`.`reader` 
    ( `readerid`, `readername`, `readerpass`, `retypeid`, `readerdate`, `readerstatus` )
VALUES
	( '0017', '蘇小東', '123456', 1, '1999-09-09 00:00:00', '有效' );
複製程式碼
> 1142 - INSERT command denied to user 'dog'@'localhost' for table 'reader'
> 時間: 0s
複製程式碼

2. 授予dog在library.reader上的姓名和密碼的update許可權

grant update(readername,readerpass) on library.reader to dog@localhost;
複製程式碼

image.png

3. 授予dog使用者在library資料庫中的所有表的select許可權

grant select on library.* to dog@localhost;
複製程式碼

image.png

4. 授予dog在library資料庫中所有的表操作許可權

grant all on library.* to dog@localhost;
複製程式碼

image.png

5. 授予dog對所有資料庫所有表的操作許可權

image.png

grant insert, delete, update, select on *.* to dog@localhost;
複製程式碼

image.png

6. 授予dog建立新使用者的權利

mysql> CREATE USER 'cat'@'localhost' IDENTIFIED BY '123456';
1227 - Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation
mysql> 
複製程式碼

一開始, dog使用者是沒有建立使用者的許可權的

grant create user on *.* to dog@localhost;
複製程式碼

之後, 可以成功

mysql> CREATE USER 'cat'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> 
複製程式碼

image.png

7. 回收使用者dog在library.reader表上的select許可權

revoke select on library.reader from dog@localhost;
複製程式碼

我不喜歡被人收回許可權, 所以就不演示了...

快速跳轉

相關文章