一:设置用户权限(用户不存在时,则新建用户)
MySQL数据库的root用户账户拥有对所有库,表的全部权限,频繁使用root账号会给数据库服务器带来一定的安全风险,实际工作中,通常会建立一些低权限的用户,只负责一部分库,表的管理和维护操作,甚至可以对查询,修改,删除记录等各种操作做进一步的细化限制,从而降低数据库的风险。
GRANT 授权列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码’ ];
- 权限列表:用于列出授权的各种数据库操作,通过逗号进行分隔,如:select,insert,update等,all表示所有权限,可以执行任意操作。
- 库名.表名:用于指定授权操作的数据库和表的名称,可以使用通配符(*)表示所有
- 用户名@来源地址:用于指定用户或允许访问的客户机地址;来源地址可以是IP地址,域名,%通配符表示所有(但不能表示localhost)
二:MySQL通配符:
- _:任意单个字符 192.168.1._
- %:任意长度的任意字符 192.168.1.%
1:格式:
mysql > GRANT select ON crushlinux.* TO 'teacher'@'localhost'IDENTIFIED BY '123456';
使用GRANT 语句授权的用户记录,会保存到mysql库的user,db,host,tables priv 等相关的表中,无需刷新授权表即可生效
(1):grant select ON crushlinux.* TO 'teacher'@'localhost' IDENTIFIED BY '123456'; #授权 (只有root可以给别人授权)
(2):flush privileges #刷新授权表
(3):退出重新登录,mysql -u teacher -p123456 使用teacher登录
(4):show databases; #查看数据库
#information_schema #运行信息
#crushlinux #他有权限的那个库
(5):drop database crushlinux; 注:(他没有权限写入)
(6):select * from crushlinux.users; (只有查看的权限)
在root 里面
(7):show grants for 'teacher'@'localhost'; #查看teacher 的权限
(8):revoke SELECT ON `crushlinux` .* from 'teacher'@'localhost'; #回收权限 (` 是fan撇)
2:显示创建特定数据库或表
(1):help create database; #显示创建数据库的信息
(2):help create table #查看数据表
(3):show grants; #查看当前已经登录用户的权限
3:显示服务器错误或警告
(1):show erros; #显示服务器的错误
(2):show warnings #显示服务器的错误
(3):select now (); #显示时间
(4):show processlist #查看当前数据库在执行那些语句
(5):grant all on *.* to 'root'@'192.168.100.3' identified by '123456'; #给自己的主机授权数据
(6):用客户端连接
数据库客户端下载:
链接:https://pan.baidu.com/s/12X8gy2s9RyJ9OLiPGfTqyA
提取码:1111