您的位置:首頁技術文章
文章詳情頁

MySQL用戶權限設置保護數據庫安全

瀏覽:114日期:2023-05-08 10:17:41
目錄
  • 更改mysql密碼
  • 創建用戶
  • 給用戶所有權限
  • 移除用戶所有權限
  • 添加部分權限
  • 移除部分權限
  • 刪除用戶
  • 權限解釋
  • 案例

更改mysql密碼

-- 查詢用戶權限
show grants for "root"@"%";
update mysql.user set authentication_string=password("密碼") where user="root" and Host = "localhost";
flush privileges;
-- 或者下面方式
alter user "test1"@"localhost" identified by "新密碼";
flush privileges;

創建用戶

-- 創建本地的
-- create user "test1"@"localhost" identified by "密碼";
-- 創建可以遠程訪問的
create user "wjl"@"%" identified by "wujialiang";

給用戶所有權限

-- grant all privileges on *.* to "wjl"@"localhost" with grant option;
grant all privileges on *.* to "wjl"@"%" with grant option;

第一個表示通配數據庫,可指定新建用戶只可操作的數據庫

如:grant all privileges on 數據庫. to ‘test1’@‘localhost’;

第二個*表示通配表,可指定新建用戶只可操作的數據庫下的某個表

如:grant all privileges on 數據庫.指定表名 to ‘test1’@‘localhost’;

all privileges 可換成select,update,insert,delete,drop,create等操作 如:grant select,insert,update,delete on . to ‘test1’@‘localhost’;

移除用戶所有權限

-- revoke all privileges on *.* from "wjl"@"localhost";
revoke all privileges on *.* from "wjl"@"%";

添加部分權限

-- GRANT Select,Update,insert,delete ON *.* TO "用戶名"@"%";
GRANT select,update,insert,delete ON *.* TO "wjl"@"%";

移除部分權限

-- REVOKE select,insert ON 數據庫.* FROM wjl@"localhost"
REVOKE select,insert ON 數據庫.* FROM wjl@"%"

刪除用戶

drop user "wjl"@"localhost";

權限解釋

參數解釋?All/All Privileges代表全局或者全數據庫對象級別的所有權限??Alter代表允許修改表結構的權限,但必須要求有create和insert權限配合。如果是rename表名,則要求有alter和drop原表, create和insert新表的權限Alter routine代表允許修改或者刪除存儲過程、函數的權限Create代表允許創建新的數據庫和表的權限Create routine代表允許創建存儲過程、函數的權限Create tablespace代表允許創建、修改、刪除表空間和日志組的權限Create temporary tables代表允許創建臨時表的權限Create user代表允許創建、修改、刪除、重命名user的權限Create view代表允許創建視圖的權限Delete 代表允許刪除行數據的權限Drop代表允許刪除數據庫、表、視圖的權限,包括truncate table命令Event代表允許查詢,創建,修改,刪除MySQL事件Execute代表允許執行存儲過程和函數的權限File 代表允許在MySQL可以訪問的目錄進行讀寫磁盤文件操作,可使用的命令包括load data infile,select … into outfile,load file()函數Grant option權限代表是否允許此用戶授權或者收回給其他用戶你給予的權限,重新付給管理員的時候需要加上這個權限Index代表是否允許創建和刪除索引Insert代表是否允許在表里插入數據,同時在執行analyze table,optimize table,repair table語句的時候也需要insert權限Lock代表允許對擁有select權限的表進行鎖定,以防止其他鏈接對此表的讀或寫Process代表允許查看MySQL中的進程信息,比如執行show processlist, mysqladmin processlist, show engine等命令Reference是在5.7.6版本之后引入,代表是否允許創建外鍵Reload代表允許執行flush命令,指明重新加載權限表到系統內存中,refresh命令代表關閉和重新開啟日志文件并刷新所有的表Replication client代表允許執行show master status,show slave status,show binary logs命令Replication slave代表允許slave主機通過此用戶連接master以便建立主從復制關系Select代表允許從表中查看數據,某些不查詢表數據的select執行則不需要此權限,如Select 1+1, Select PI()+2;而且select權限在執行update/delete語句中含有where條件的情況下也是需要的Show databases代表通過執行show databases命令查看所有的數據庫名Show view代表通過執行show create view命令查看視圖創建的語句Shutdown代表允許關閉數據庫實例,執行語句包括mysql admin shutdownSuper代表允許執行一系列數據庫管理命令,包括kill強制關閉某個連接命令, change master to創建復制關系命令,以及create/alter/drop server等命令Trigger代表允許創建,刪除,執行,顯示觸發器的權限Update代表允許修改表中的數據的權限Usage是創建一個用戶之后的默認權限,其本身代表連接登錄權限

案例

普通用戶權限

grant all privileges on *.* to "wjl"@"%" with grant option;
REVOKE Shutdown,Process,Grant option,Drop ON *.* FROM wjl@"%";
flush privileges;

到此這篇關于MySQL用戶權限設置保護數據庫安全的文章就介紹到這了,更多相關MySQL用戶權限設置內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
国产综合久久一区二区三区