mysql 用户管理和权限设置
- 1user表中host列的值的意义
2用户管理
- 查看
创建
- 直接创建并赋权限 推荐
- 创建 identified by 会将纯文本密码加密作为散列值存储
- 直接向数据表添加
- 修改
- 更改密码
- 删除
3权限管理
- 查看用户权限
- 赋予用户权限
- 4 回收权限
- 最后刷新权限
1、user表中host列的值的意义
% 匹配所有主机
localhost localhost不会被解析成IP地址,直接通过UNIXsocket连接
127.0.0.1 会通过TCP/IP协议连接,并且只能在本机访问;
::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
2、用户管理
查看
select `host`, `user` , `password` from `mysql`. `user` ;
创建
1.直接创建并赋权限 (推荐)
grant all on *.* to 'admin'@'%' identified by 'password' ;
2.创建 identified by 会将纯文本密码加密作为散列值存储
create user zx_root IDENTIFIED by 'password';
3.直接向数据表添加
INSERT INTO `mysql`.`user` VALUES ('%', 'mysqltest', password("hello123"), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0', '0', 'mysql_native_password', '', 'N');
修改
rename `mysql`.`user` 'feng' to 'newuser';
//mysql 5之后可以使用,之前需要使用update 更新user表
更改密码
set password for zx_root = password ( 'xxxxxx' );
update `mysql`. `user` set password = password ( 'xxxx' ) where `user` = 'otheruser';
删除
DELETE FROM `mysql`. `user` WHERE `User` = '' ;
DROP USER 'user' [,'user' ...] ;
#或则如果不希望用户在系统中存在,可以按如下方式撤销
revoke all privileges,grant from user
3、权限管理
查看用户权限
show grants for zx_root;
赋予用户权限
grant 权限1,权限2,…权限n on 数据库名称.表名称 to '用户名' @ '用户地址' identified by ‘连接口令’;
- 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
- 权限1,权限2,…权限n被all privileges或则all代替,表示赋予用户全部权限。
- 当数据
库名称.表名
被*.*
代替,表示赋予用户操作服务器上的所有数据库的所有的表。 - 用户地址可以是localhost,也可以是IP地址、机器名字、域名。也可以用
%
表示允许从任何地址连接。 - ‘连接口令’未登录状态不能为空,否则创建失败。已登录可以为空。
权限 | 说明 |
---|---|
all privileges或则all | 表示赋予用户全部权限 |
select | 查询 |
insert | 增加 |
update | 修改 |
delete | 删除 |
create | 创建数据库或则表 |
drop | 删除数据库或则表 |
index | 可以试用create index 和drop index |
alter | 修改表结构 |
grant | 权限控制 |
references | 外键(Foreign Key) |
reload | 必须拥有reload权限,才能执行flush [tables、logs、privileges] |
shutdown | 试用mysqladmin shutdown来关闭mysql |
process | 通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令 |
file | 使用select into outfile 和load data infile 但是不要把file,process,super权限授予管理员以外的帐号, 这样存在严重的安全隐患 |
4、 回收权限
revoke select on dmc_db.* from zx_root;
//如果权限不存在会报错
上面的命令也可使用多个权限同时赋予和回收,权限之间使用逗号分隔
最后:刷新权限
重新刷权限表到内存了
FLUSH PRIVILEGES ;
还没有评论,来说两句吧...