快捷查看指令 ctrl+f 進行搜索會直接定位到需要的知識點和命令講解(如有不正確的地方歡迎各位小伙伴在評論區提意見,博主會及時修改)
MySQL用戶與權限管理
登錄
#本地登錄
mysql -uroot -p123456#遠程登錄
#客戶端語法:mysql -u 用戶名 -p 密碼 -h ip地址 -P 端口號:如果沒有改端口號就不用-P指定端口mysql -h192.168.246.253 -P 3306 -uroot -p123456
#上述命令含義為將要登錄到遠程一臺ip為192.168.246.253,端口為3306,用戶名為root,密碼為123456的msyql
修改用戶登錄權限
如果用戶無法遠程登錄證明用戶沒有遠程登錄權限,需要修改權限
1. 使用root用戶本地登錄 2. 查看用戶登錄權限
mysql> use mysql; #進入msyql庫mysql> select user,host from user; #查詢user表的user,host字段
3. 修改用戶的登錄權限
mysql> update user set host = '%' where user = '用戶名';
#設置root用戶可在任意地點登錄#此外登錄權限可以有如下設置% 所有主機遠程登錄192.168.246.% 192.168.246.0網段的所有主機192.168.246.252 指定主機localhost 只允許本地用戶登錄
4. 修改完成后,從新驗證登錄
[root@localhost log]mysql -h192.168.246.253 -P 3306 -uroot -p123456mysql 命令參數拓展
-h 指定主機名 [默認為localhost]
-P MySQL服務器端口 [默認3306]
-u 指定用戶名 [默認root]
-p 指定登錄密碼 [默認為空密碼]
-e 接SQL語句,可以寫多條 拿;隔開[root@localhost log]mysql -h192.168.246.253 -P 3306 -uroot -p123456 -D mysql -e 'select * from user;'
#上述命令為遠程登錄一臺ip為192.168.246.253 端口為3306 用戶名為root 密碼為123456的mysql數據庫,
#并進入到mysql庫中執行'select * from user;'語句
創建用戶
mysql> create user abc@'localhost' identified by 'abc123'; #創建用戶為abc,并設置密碼。
#上述命令為創建用戶名為abc,密碼為abc123的用戶且只能在本地登錄
mysql> FLUSH PRIVILEGES; #更新授權表# 注意:此時創建用戶沒有任何權限,不可操作數據
刪除用戶
msyql>drop user 用戶名;
權限簡介
為了更好管理數據庫,數據庫為用戶設置了各種權限,超級管理員可以通過授予以及取消用戶權限來管理用戶
權限 | 權限級別 | 權限說明 |
---|---|---|
CREATE | 數據庫、表或索引 | 創建數據庫、表或索引權限 |
DROP | 數據庫或表 | 刪除數據庫或表權限 |
GRANT OPTION | 數據庫、表或保存的程序 | 賦予權限選項 #小心給予 |
ALTER | 表 | 更改表,比如添加字段、索引等 |
DELETE | 表 | 刪除數據權限 |
INDEX | 表 | 索引權限 |
INSERT | 表 | 插入權限 |
SELECT | 表 | 查詢權限 |
UPDATE | 表 | 更新權限 |
LOCK TABLES | 服務器管理 | 鎖表權限 |
CREATE USER | 服務器管理 | 創建用戶權限 |
REPLICATION SLAVE | 服務器管理 | 復制權限 |
SHOW DATABASES | 服務器管理 | 查看數據庫權限 |
ALL | 服務器管理 | 所有權限 |
賦予權限
grant 權限名 on 庫名.表名 to 用戶名@'登錄地址限制' identified by '新的密碼';#實例
grant select on test.user to abc@'%' identfied by '111111';
將對test庫中的user表的查詢權限授予abc,并設置abc可在任意主機登錄,并且密碼改為111111
回收權限
revoke 權限名 on 庫名.表明 from 用戶名;
- 被回收的權限必須存在,否則會出錯
- 整個數據庫,使用 ON datebase.*;
- 特定的表:使用 ON datebase.table;
用戶權限管理介紹
MySQL用戶權限管理是指授權和管理MySQL數據庫中的用戶及其權限,以保護數據庫的安全性和完整性,避免誤操作及數據泄漏。在MySQL中,用戶權限分為全局權限和數據庫權限。
全局權限控制是針對整個MySQL服務器的操作權限,包括創建和刪除用戶、修改密碼、管理全局變量、管理日志等。數據庫權限控制是指指定用戶可以訪問和操作哪些數據庫、表格、以及哪些操作等。
通過對用戶權限的細致管理,可以保障MySQL數據庫的安全性和完整性。