MySQL學習之權限管理
MySQL學習之權限管理
權限管理
在MySQL中將權限管理分為三類
1.數據權限:增刪改查 (select\update\delete\insert)
2.結構權限:結構操作(create\drop\alter)
3.管理權限:權限管理(create user\grant\revoke),通常只給管理員如此權限。
授予權限:grant
將權限分配給指定的用戶
基本語法:grant 權限列表 on 數據庫/*.表名/* to 用戶;
權限列表:使用逗號分隔,但是可以使用 all privileges 代表全部權限。
數據庫.表名:可以是單表(數據庫名字.表名),可以是具體某個數據庫(數據庫,*),也可以是整庫(*.*);
數據庫名字.表名:指的是對應數據庫中對應數據表。
*.表名:指的是將所有數據庫中的數據表。
*.*:指的是所有數據庫中的所有表。
可以理解為:將對school數據庫中的my_int數據表的查詢權限賦予lixiaochi用戶。
具體權限查看:單表權限只能看到數據庫中的一張表。
*.表名:指的是將所有數據庫中的數據表。
取消權限:revoke
權限回收:將權限從用戶手中收回
基本語法:revoke 權限列表(all privileges)on 數據庫/*.表名/* from 用戶;
revoke all privileges on school.* from lixiaochi@‘%‘;
刷新權限:flush
Flush:刷新,將當前對用戶的權限操作,進行一個刷新,將操作的具體內容同步到對應的表中。
基本語法:flush privileges;
密碼丟失的解決方案
如果忘記了root用戶的密碼,就需要去找回或者是重置root用戶。
1.停止服務; net stop mysql
2.重新啟動服務: mysqld.exe --skip-grant-tables;
3.當前啟動的服務器沒有權限概念,非常危險,任何客戶端,不需要任何用戶信息都可以直接登錄,
而且是root權限,新開客戶端,使用mysql.exe登錄即可。
4.修改root用戶的密碼。指定 用戶名@host : alter user ‘用戶名‘@‘host‘ identified by ‘123456‘;
5.趕緊關閉服務器,重啟服務。
MySQL學習之權限管理