权限有 ALL,ALTER,CREATE,DROP,SELECT,UPDATE,DELETE
- 新增用户:权限为USAGE,即为:"无权限",想要创建一个没有权限的用户时,可以指定USAGE
账户级别有
1,整个服务器,使用 grant ALL 和revoke ALL
2,整个数据库,使用on database.*
3,特点表,使用on database.table
4,特定的列
5,特定的存储过程
如果过程出现 MySQL报错解决:The MySQL server is running with the --read-only option so it cannot execute this statement
https://www.cnblogs.com/hiit/p/11465470.html
set global read_only=0; flush privileges;
创建用户
CREATE USER 't1'@'10.0.2.52' IDENTIFIED BY '123456';
CREATE USER 't2'@'10.0.2.52' IDENTIFIED BY '123456';
CREATE USER 't3'@'10.0.2.52' IDENTIFIED BY '123456';
分别赋予用户,全库,单库,单表,和列权限授予
grant select(id, login_ip) on dqms.log_login to 't1'@'10.0.2.52';
GRANT all on dqms.* TO 't2'@'10.0.2.52';
GRANT all ON *.* TO 't3'@'10.0.2.52';
show grants for 't1'@'10.0.2.52';
show grants for 't2'@'10.0.2.52';
show grants for 't3'@'10.0.2.52';
FLUSH PRIVILEGES ;
SELECT * from mysql.`user` ;
host是指定ip连接进来
% 匹配所有主机
localhost localhost不会被解析成IP地址,直接通过UNIXsocket连接
127.0.0.1 会通过TCP/IP协议连接,并且只能在本机访问;
::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
授予某张表权限,权限信息保存在mysql.tables_priv表中
授予某个字段的权限,权限信息保存在mysql.columns_priv表中
当使用
revoke all privileges on *.* from 'test'@'localhost';
回收的只是全局的权限,test用户其他的权限,比如对pmx数据库的权限,对score表的权限,对某个字段的权限仍然持有。 所以为了回收用户的所有权限,使用
revoke all privileges,grant option from 'test'@'localhost';
这是条固定语法,all privileges和grant option必须都有