快捷查看指令 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 -p123456
mysql 命令参数拓展
-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数据库的安全性和完整性。