mysql 用户管理和权限设置

以你之姓@ 2022-07-11 08:51 357阅读 0赞
  • 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、用户管理

查看

  1. select `host`, `user` , `password` from `mysql`. `user` ;

创建

1.直接创建并赋权限 (推荐)
  1. grant all on *.* to 'admin'@'%' identified by 'password' ;
2.创建 identified by 会将纯文本密码加密作为散列值存储
  1. create user zx_root IDENTIFIED by 'password';
3.直接向数据表添加
  1. 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');

修改

  1. rename `mysql`.`user` 'feng' to 'newuser';

//mysql 5之后可以使用,之前需要使用update 更新user表

更改密码

  1. set password for zx_root = password ( 'xxxxxx' );
  2. update `mysql`. `user` set password = password ( 'xxxx' ) where `user` = 'otheruser';

删除

  1. DELETE FROM `mysql`. `user` WHERE `User` = '' ;
  2. DROP USER 'user' [,'user' ...] ;
  3. #或则如果不希望用户在系统中存在,可以按如下方式撤销
  4. revoke all privileges,grant from user

3、权限管理

查看用户权限

  1. show grants for zx_root;

赋予用户权限

  1. grant 权限1,权限2,…权限n on 数据库名称.表名称 to '用户名' @ '用户地址' identified by ‘连接口令’;
  1. 权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
  2. 权限1,权限2,…权限n被all privileges或则all代替,表示赋予用户全部权限。
  3. 当数据库名称.表名*.*代替,表示赋予用户操作服务器上的所有数据库的所有的表。
  4. 用户地址可以是localhost,也可以是IP地址、机器名字、域名。也可以用%表示允许从任何地址连接。
  5. ‘连接口令’未登录状态不能为空,否则创建失败。已登录可以为空。





































































权限 说明
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、 回收权限

  1. revoke select on dmc_db.* from zx_root;

//如果权限不存在会报错

上面的命令也可使用多个权限同时赋予和回收,权限之间使用逗号分隔

最后:刷新权限

重新刷权限表到内存了

  1. FLUSH PRIVILEGES ;

发表评论

表情:
评论列表 (有 0 条评论,357人围观)

还没有评论,来说两句吧...

相关阅读