欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql8.0.30用戶與權(quán)限管理的實踐

 更新時間:2024年04月24日 10:53:13   作者:HappyLearnerL  
MySQL8.0新加了很多功能,其中在用戶管理中增加了角色的管理,本文主要介紹了mysql8.0.30用戶與權(quán)限管理的實踐,具有一定的參考價值,感興趣的可以了解一下

用戶管理

登錄mysql服務(wù)器

mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL語句"

下面詳細介紹命令中的參數(shù):

  • h參數(shù) 后面接主機名或者主機IP,hostname為主機,hostIP為主機IP。
  • P參數(shù) 后面接MySQL服務(wù)的端口,通過該參數(shù)連接到指定的端口。MySQL服務(wù)的默認端口是3306,不使用該參數(shù)時自動連接到3306端口,port為連接的端口號。
  • u參數(shù) 后面接用戶名,username為用戶名。
  • p參數(shù) 會提示輸入密碼。
  • DatabaseName參數(shù) 指明登錄到哪一個數(shù)據(jù)庫中。如果沒有該參數(shù),就會直接登錄到MySQL數(shù)據(jù)庫
    中,然后可以使用USE命令來選擇數(shù)據(jù)庫。
  • e參數(shù) 后面可以直接加SQL語句。登錄MySQL服務(wù)器以后即可執(zhí)行這個SQL語句,然后退出MySQL
    服務(wù)器。

創(chuàng)建用戶

create user zhang3 identified by '123_qwerQWER'; # 默認hosts是 % 
flush privileges; #立即生效
---------------------------------------------------------
create user 'kangshifu'@'localhost' identified by '123_qwerQWER'; # 創(chuàng)建指定host的用戶

在這里插入圖片描述

修改用戶

update mysql.user set user='li4' where user='zhang3';
flush privileges;

在這里插入圖片描述

刪除用戶

drop user li4; # 默認刪除host為%的用戶
drop user 'kangshifu'@'localhost'; #指定刪除host的用戶
flush privileges;
---------------------------------------------------------
delete from mysql.user where host='%' and user='zhang3'; # delete也可以刪除用戶
flush privileges;

查看用戶

select host, user from user;
或
select host, user from mysql.user;

修改用戶密碼

set password for 'zhang3'@'%'='122_qwerQWER';

權(quán)限管理

查看權(quán)限

show privileges;

在這里插入圖片描述

  • (1) CREATE和DROP權(quán)限 ,可以創(chuàng)建新的數(shù)據(jù)庫和表,或刪除(移掉)已有的數(shù)據(jù)庫和表。如果將MySQL數(shù)據(jù)庫中的DROP權(quán)限授予某用戶,用戶就可以刪除MySQL訪問權(quán)限保存的數(shù)據(jù)庫。
  • (2)SELECT、INSERT、UPDATE和DELETE權(quán)限 允許在一個數(shù)據(jù)庫現(xiàn)有的表上實施操作。
  • (3) SELECT權(quán)限只有在它們真正從一個表中檢索行時才被用到。
  • (4) INDEX權(quán)限 允許創(chuàng)建或刪除索引,INDEX適用于已有的表。如果具有某個表的CREATE權(quán)限,就可以在CREATE TABLE語句中包括索引定義。
  • (5) ALTER權(quán)限 可以使用ALTER TABLE來更改表的結(jié)構(gòu)和重新命名表。
  • (6) CREATE ROUTINE權(quán)限 用來創(chuàng)建保存的程序(函數(shù)和程序),ALTER ROUTINE權(quán)限用來更改和刪除保存的程序, EXECUTE權(quán)限 用來執(zhí)行保存的程序。
  • (7) GRANT權(quán)限 允許授權(quán)給其他用戶,可用于數(shù)據(jù)庫、表和保存的程序。
  • (8) FILE權(quán)限 使用戶可以使用LOAD DATA INFILE和SELECT … INTO OUTFILE語句讀或?qū)懛?wù)器上的文件,任何被授予FILE權(quán)限的用戶都能讀或?qū)慚ySQL服務(wù)器上的任何文件(說明用戶可以讀任何數(shù)據(jù)庫目錄下的文件,因為服務(wù)器可以訪問這些文件)。

授予權(quán)限的原則

權(quán)限控制主要是出于安全因素,因此需要遵循以下幾個 經(jīng)驗原則 :

  • 1、只授予能 滿足需要的最小權(quán)限 ,防止用戶干壞事。比如用戶只是需要查詢,那就只給select權(quán)限就可以了,不要給用戶賦予update、insert或者delete權(quán)限。
  • 2、創(chuàng)建用戶的時候 限制用戶的登錄主機 ,一般是限制成指定IP或者內(nèi)網(wǎng)IP段。
  • 3、為每個用戶 設(shè)置滿足密碼復(fù)雜度的密碼 。
  • 4、 定期清理不需要的用戶 ,回收權(quán)限或者刪除用戶。

授予權(quán)限

注意: 命令行字母可小寫

GRANT 權(quán)限1,權(quán)限2,…權(quán)限n ON 數(shù)據(jù)庫名稱.表名稱 TO 用戶名@用戶地址 [IDENTIFIED BY ‘密碼口令'];
  • 給li4用戶用本地命令行方式,授予atguigudb這個庫下的所有表的插刪改查的權(quán)限。
    GRANT SELECT,INSERT,DELETE,UPDATE ON atguigudb.* TO li4@localhost ;

  • 授予通過網(wǎng)絡(luò)方式登錄的joe用戶 ,對所有庫所有表的全部權(quán)限,密碼設(shè)為123。注意這里唯獨不包括grant的權(quán)限
    GRANT ALL PRIVILEGES ON *.* TO joe@'%' IDENTIFIED BY '123';

實例如下

 grant select on atguigu.* to zhang3@%;
 grant select on custom.users to 'zhang3'@'%';

查看權(quán)限

show grants for 'root'@'%'\G
show grants for 'zhang3'@'%'\G

在這里插入圖片描述

收回權(quán)限

REVOKE 權(quán)限1,權(quán)限2,…權(quán)限n ON 數(shù)據(jù)庫名稱.表名稱 FROM 用戶名@用戶地址;
#收回全庫全表的所有權(quán)限
REVOKE ALL PRIVILEGES ON *.* FROM joe@'%';
#收回mysql庫下的所有表的插刪改查權(quán)限
REVOKE SELECT,INSERT,UPDATE,DELETE ON mysql.* FROM joe@localhost;

查看user 信息表結(jié)構(gòu)和信息

desc mysql.user;
select * from mysql.user\G

在這里插入圖片描述

在這里插入圖片描述

db表

DESCRIBE mysql.db;
  • 用戶列 db表用戶列有3個字段,分別是Host、User、Db。3個字段分別表示主機名、用戶名和數(shù)據(jù)庫名。表示從某個主機連接某個用戶對某個數(shù)據(jù)庫的操作權(quán)限,這3個字段的組合構(gòu)成了db表的主鍵。

  • 權(quán)限列
    Create_routine_priv和Alter_routine_priv這兩個字段決定用戶是否具有創(chuàng)建和修改存儲過程的權(quán)限

其他表信息、

procs_priv表 tables_priv表和 columns_priv表 需要時自行了解

角色管理

  • 角色(Role),可以認為是一些權(quán)限的集合,一直是存在各個數(shù)據(jù)庫中,比如Oracle、SQL Server、OceanBase等,MySQL 自從 8.0 release 才引入角色這個概念。
  • 為用戶賦予統(tǒng)一的角色,即把一個帶有某些權(quán)限集合的角色分配給一個用戶,那該用戶就擁有了該角色所包含的所有權(quán)限,權(quán)限的修改直接通過角色來進行,無需為每個用戶單獨授權(quán),大大的方便了權(quán)限管理。

創(chuàng)建角色

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...
CREATE ROLE 'manager'@'localhost';

給角色授予權(quán)限

GRANT privileges ON table_name TO 'role_name'[@'host_name'];

查看所有權(quán)限

show privileges\G

在這里插入圖片描述

查看角色的權(quán)限

SHOW GRANTS FOR 'manager';

回收角色的權(quán)限

REVOKE privileges ON tablename FROM 'rolename';

刪除角色

注意, 如果你刪除了角色,那么用戶也就失去了通過這個角色所獲得的所有權(quán)限 。

DROP ROLE role [,role2]...
DROP ROLE 'school_read';

給用戶賦予角色

GRANT role [,role2,...] TO user [,user2,...];
GRANT 'school_read' TO 'kangshifu'@'localhost';

激活角色

show variables like 'activate_all_roles_on_login';
SET GLOBAL activate_all_roles_on_login=ON;

這條 SQL 語句的意思是,對 所有角色永久激活 。運行這條語句之后,用戶才真正擁有了賦予角色的所有
權(quán)限。

在這里插入圖片描述

撤銷用戶的角色

REVOKE role FROM user;
REVOKE 'school_read' FROM 'kangshifu'@'localhost';
SHOW GRANTS FOR 'kangshifu'@'localhost';

設(shè)置強制角色(mandatory role)

在這里插入圖片描述

 到此這篇關(guān)于mysql8.0.30用戶與權(quán)限管理的實踐的文章就介紹到這了,更多相關(guān)mysql8.0.30用戶與權(quán)限管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql報錯Duplicate entry ‘xxx‘ for key ‘字段名‘的解決

    mysql報錯Duplicate entry ‘xxx‘ for key&nbs

    有時候?qū)Ρ磉M行操作,例如加唯一鍵,或者插入數(shù)據(jù),會報錯,本文就來介紹一下mysql報錯Duplicate entry ‘xxx‘ for key ‘字段名‘的解決方法,感興趣的可以了解一下
    2023-10-10
  • MySQL主從復(fù)制的原理圖解及Java語言示例使用

    MySQL主從復(fù)制的原理圖解及Java語言示例使用

    這篇文章主要介紹了MySQL的主從復(fù)制原理詳細分析,讀寫分離是基于主從復(fù)制來實現(xiàn)的。文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • mysql下怎樣運行腳本以運行niuzi.sql為例

    mysql下怎樣運行腳本以運行niuzi.sql為例

    mysql下運行腳本,有兩種方法,都是在命令行下進行的,需要的朋友可以記錄下
    2014-07-07
  • MySQL給查詢記錄增加序列號的實現(xiàn)方法

    MySQL給查詢記錄增加序列號的實現(xiàn)方法

    這篇文章主要介紹了MySQL給查詢記錄增加序列號的實現(xiàn)方法,文中通過代碼示例講解的非常詳細,對大家的學(xué)習或工作有一定的參考價值,需要的朋友可以參考下
    2023-11-11
  • MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別

    MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別

    本文給大家分享的是mysql索引中的KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別,即主鍵索引,唯一索引和普通索引的區(qū)別,希望大家能夠喜歡
    2017-07-07
  • 如何添加一個mysql用戶并給予權(quán)限詳解

    如何添加一個mysql用戶并給予權(quán)限詳解

    在很多時候我們并不會直接利用mysql的root用戶進行項目的開發(fā),一般我們都會創(chuàng)建一個具有部分權(quán)限的用戶,下面這篇文章主要給大家介紹了關(guān)于如何添加一個mysql用戶并給予權(quán)限的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • mysql數(shù)據(jù)自增ID為2的解決方案

    mysql數(shù)據(jù)自增ID為2的解決方案

    這篇文章主要介紹了mysql數(shù)據(jù)自增ID為2的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • mysql數(shù)據(jù)庫單表最大存儲依據(jù)詳解

    mysql數(shù)據(jù)庫單表最大存儲依據(jù)詳解

    這篇文章主要為大家介紹了mysql數(shù)據(jù)庫單表最大存儲的依據(jù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • MySQL在Centos7環(huán)境安裝的完整步驟記錄

    MySQL在Centos7環(huán)境安裝的完整步驟記錄

    在CentOS7環(huán)境下安裝MySQL是一項常見的任務(wù),尤其對于那些沒有網(wǎng)絡(luò)連接或者需要在隔離環(huán)境中的開發(fā)者來說,離線安裝MySQL顯得尤為重要,這篇文章主要介紹了MySQL在Centos7環(huán)境安裝的完整步驟,需要的朋友可以參考下
    2024-10-10
  • MYSQL時區(qū)導(dǎo)致時間差了14或13小時的解決方法

    MYSQL時區(qū)導(dǎo)致時間差了14或13小時的解決方法

    本文主要介紹了MYSQL時區(qū)導(dǎo)致時間差了14或13小時的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-01-01

最新評論