mysql學習筆記,數據控制語言DCL

大家好,我是天空之城,今天給大家帶來,mysql數據控制語言DCL。sql語言按功能分爲四類,DDL DML DQL DCL,DCL用於管理用戶和權限。
QQ截圖20200610222336.png

QQ截圖20200610222537.png

QQ截圖20200610222609.png

一、用戶管理
DCL主要能做什麼
創建用戶
刪除用戶
修改密碼
給用戶賦予權限
撤銷用戶權限

#創建用戶
CREATE USER '用戶名' [@'主機名'] [IDENTIFIED BY '密碼'];
注意: MySQL的用戶賬號由兩部分組成:用戶名和主機名,即用戶名@主機名,主機名可以是IP或機器名稱,主機名爲%表示允許任何地址的主機遠程登錄MySQL數據庫。
#刪除用戶
DROP USER '用戶名' [@'主機名'];
#修改密碼
ALTER USER '用戶名'@'主機名' IDENTIFIED BY新密碼';

進入數據庫,查看user表
select * from  user\G;
root用戶只能在localhost本機登錄,確保數據庫的安全性

二 創建用戶
create user  'liusan'@'%' identified by '123456';
創建liusan用戶,可以在任何機器上登錄,密碼123456

create user  'liusan'@'192.168.0.221' identified by '123456';
創建liusan用戶,可以在ip地址的'192.168.0.221'機器上登錄,密碼123456

ipconfig查看電腦的ip地址

三 權限管理
在MySQL數據庫中,使用grant命令授權、revoke命 令撤銷授權。
#授權
grant all privileges on databaseName.tableName to '用戶名' [@'主機名'];
#撤銷授權
revoke all privileges on databaseName.tableName from '用戶名' [@'主機名'];
#刷新權限
FLUSH PRIVILEGES;
#查看權限
show grants for '用戶名' [@'主機名'];

把查看數據庫權限賦予給liusan用戶
grant select on mydb.* to 'liusan'@'%';
revoke select on mydb.* from 'liusan'@'%';


四、禁止root用戶遠程登錄
root用戶是數據庫的超級管理員,必須禁止其遠程登錄,才能確保數據庫安全,防止被暴力破解密碼
賬號有兩部分組成,用戶名和主機名
把root用戶的主機名改爲localhost
update user set host='localhost' where user='liusan';
限制liusan只能在本機localhost主機登錄


五、如何找回root用戶密碼
第一步,關閉mysql服務
第二步,重啓mysql時關閉權限驗證
mysqld --defaults-file= "C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory
說明:參數--defaults- file的值爲配置文件my.ini的完整路徑。
show variables like '%datadir%';

第三步,修改root密碼
MySQL關閉權限驗證後,直接通過mysql命令即可連接到數據庫,並可正常執行各類操作。
#刷新權限
FLUSH PRIVILEGES;
ALTER USER 'root' @'localhost' IDENTIFIED BY '123456'; 
第一個窗口保持不關
第四步,正常啓動mysql服務
重新開一個窗口




QQ截圖20200610224511.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章