首頁 > 軟體

Mysql賬號管理與引擎相關功能實現流程

2022-10-22 14:01:15

mysql後設資料庫

什麼是後設資料庫:記錄mysql自身資料的資料庫

有哪些資料庫:information_schema(資訊資料庫),儲存mysql所維護的其他資料庫資訊,例如:資料庫名,資料庫的表,表欄的資料型別與存取許可權等

mysql(核心資料庫),主要負責儲存資料庫的使用者、許可權設定、關鍵字等mysql自己需要使用的控制和管理資訊

performance_schema 用於mysql的監控資料的存放

切換資料庫:use 資料庫名 如:use mysql

資料庫賬號管理

1、建立賬戶

命名格式:create user 使用者名稱 identified by ‘密碼’

說明:identified by會將純文字密碼加密作為雜湊值儲存

範例:create usertestidentified by ‘123456’;

2、檢視賬戶

命令格式:select host,user,password from user;

host列說明:% (匹配所有主機)

localhost (localhost不會被解析成IP地址,直接通過UNIXsocket連線;同一主機通訊,不經過網路協定棧,不用打包拆包,計算校驗和、維護序列號應答等。只是將應用層資料從一個程序拷貝到另一個程序)

127.0.0.1 (會通過TCP/IP協定連線,並且只能在本機存取)

::1 (::1就是相容支援ipv6的,表示同ipv4的127.0.0.1)

3、刪除賬戶

命令格式:dropuser使用者名稱

範例:dropusertest;

注意:一般不用,用時需謹慎

4、修改密碼

命令格式

set password for 使用者名稱=password('新密碼')

範例:

set password fortest=password('123456');

5、重新整理設定

命令格式:flushprivileges

6、設定許可權

命令格式:grant privileges on databasename.tablename to username@'host'

  • privileges:指定select,update等許可權,全部許可權使用all
  • databasename: 指定資料庫,所有資料庫請使用*
  • tablename: 指定資料表,所有表請使用*
  • username: 需要賦權的使用者名稱,@帶的是Host,表示賦權操作針對那些連結,詳情檢視【host列說明】

使用範例

//將bookshop資料庫中的t_book表的select,update許可權賦予test使用者,並且不對ip地址限制
grant select, update on bookshop.`t_book` TO test@'%';
//一般用於賦予管理員最高許可權,謹慎使用
grant all on *.* to dba@'localhost'
//以192.168.0開頭的賬戶名deveoper使用者針對testdb資料庫賦予建立檢視的許可權
grant create view on testdb.* to developer@'192.168.0.%'; 
//以192.168.0開頭的賬戶名deveoper使用者針對testdb資料庫賦予檢視檢視的許可權
grant show   view on testdb.* to developer@'192.168.0.%'
//以192.168.0開頭的賬戶名deveoper使用者針對testdb資料庫賦予建立索引的許可權
grant index on testdb.* to developer@'192.168.0.%';
//以192.168.0開頭的賬戶名deveoper使用者針對testdb資料庫賦予操作儲存過程與函數的許可權
//以192.168.0開頭的賬戶名deveoper使用者針對testdb資料庫賦予建立刪除儲存過程與函數的許可權
grant create routine on testdb.* to developer@'192.168.0.%'
grant alter  routine on testdb.* to developer@'192.168.0.%';

授權使用者可以將擁有的許可權再賦予其他使用者

命令格式:

grant privileges on databasename.tablename to username@'host' with grant option

範例:

grant select on testdb.* to dba@localhost with grant option

說明:一般不用,建議與資料庫管理員(DBA)統一管理

7、檢視許可權

show grants:檢視當前使用者(自己)許可權

show grants for dba@localhost;

檢視其他 MySQL 使用者許可權

8、復原許可權

命令格式:

revoke privileges on databasename.tablename from username@'host'

範例:

revoke update on bookshop.t_book from test@'%';//收回test使用者對於bookshop庫中t_book表的update許可權(ip不限)

mysql引擎

什麼是資料庫引擎?

資料庫儲存引擎是資料庫底層軟體組織,資料庫管理系統(DBMS)使用資料引擎進行建立、查詢、更新和刪除資料, 不同的儲存引擎提供不同的儲存機制、索引技巧、鎖定水平等功能,使用不同的儲存引擎,還可以獲得特定的功能

檢視資料引擎

命令:show engines

Support欄位說明:

  • DEFAULT的為預設的引擎
  • 為YES表示可以使用
  • 為NO表示不能使用

常用的一些引擎

1、MyISAM引擎

MYISAM強調了快速讀取操作

使用場景: 大量查詢,很少修改的場景

儲存限制:256T

事務支援:不支援事務

2、memory引擎

所有的資料都儲存在記憶體中,一旦伺服器重啟,所有Memory儲存引擎的表資料會消失但是表結構會儲存下來

使用場景:由於易失性,可以用於儲存在分析中產生的中間表

儲存限制:取決與RAM

事務支援:不支援事務

3、InnoDB引擎

後者修改快,支援事務

使用場景:一般事務性,均使用該引擎,用途最廣,如果把握不準使用何種引擎,就使用該引擎

儲存限制:64TG

事務支援:支援事務

4、Archive引擎

只允許插入和查詢,不允許修改和刪除,壓縮儲存,節約空間,可以實現高並行的插入,支援在自增id上建立索引

使用場景:在紀錄檔和資料採集的時候可以使用

特點:

  • Archive表比MyISAM表要小大約75%,比支援事務處理的InnoDB表小大約83%
  • 不支援索引(自增id列除外)
  • 支援insert,select操作,但不支援delete,update操作

到此這篇關於Mysql賬號管理與引擎相關功能實現流程的文章就介紹到這了,更多相關Mysql賬號管理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com