likes
comments
collection
share

MySQL新建数据库,用户管理及授权管理简介

作者站长头像
站长
· 阅读数 12

  上篇博客Linux(CentOS-7)下安装MySQL-5.7.30 讲了如何安装MySQL,今天总结下MySQL如何建库,新建用户,和赋权等操作,我这里连接MySQL使用的工具是DBeaver

==新建数据库==

  新建名为hive的mysql数据库,使用DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci为字符的编码集,因为坑少,能识别字段内1的区别,这种字符如果处理不好就显示成了一样,实际上还是有区别的。

--创建名称为hive的数据库,并设定编码集为utf8mb4,坑少,
CREATE DATABASE IF NOT EXISTS hive  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

==新建用户==

  新建一个hive用户,并设置密码为hive1234;

-- 创建了一个名为:hive 密码为:hive1234 的用户
create user 'hive'@'localhost' identified by 'hive1234';

注意: 此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

==查看用户==

  查看用户可以使用以下sql,结果如图1,这里的远程工具使用的DBeaver

--查看用户
select user,host from mysql.user;

MySQL新建数据库,用户管理及授权管理简介

图1 查看用户结果

==删除用户==

  删除用户sql如下:

--删除用户hive
drop user hive@localhost ;

注意: 若创建的用户允许任何电脑登陆,删除用户如下 drop user hive@'%';

==更改用户密码==

  更改用户密码操作sql如下:

-- 密码实时更新;修改用户“hive”的密码为“'hive1234”
set password for hive=password('hive1234');
--刷新可有可无,刷新指令为
flush privileges;

==用户权限管理==

  用户权限管理,新增hive用户的权限sql如下,切记最后要用flush privileges; 刷新权限,不然可能不能生效;

--  授予 hive用户在hive库的所有权限,on后面接的hive是db名字
grant all privileges on hive.* to hive@'%' identified by 'hive1234';
 
-- 授予 hive用户在hive库的所有权限,privileges 关键字可以省略
grant all on hive.* to hive@'%' identified by 'hive1234';

-- 也可以单独授权,授予用户hive通过外网IP对于该数据库hive中表的创建、修改、删除权限,以及表数据的增删查改权限
grant create,alter,drop,select,insert,update,delete on hive.* to hive@'%';

-- 也可以限制到表级别,如限制到hive库的goods表
grant insert,update,select on hive.goods to hive@'%'

-- 撤销权限跟grant很像,只是关键字为revoke ,to变成from ,但是用的不多,如果撤销用户太麻烦的话也可使用删除用户,再重新建同密码的用户赋予新的权限
revoke all on hive.* from hive@'%'; 
-- 切记最后要刷新刷新权限
flush privileges; 

  如果在加权限的时候即使你用root账号也报错Access denied for user 'root'@'%' to database 'hive',这个 时候你你又不是在MySQL服务器本地操作的话,你需要查看下自己的root是否有远程赋权的权限,sql如下:

select Host,`User`,Grant_priv,Super_priv from mysql.`user` u
表1 root远程赋权结果
HostUserGrant_privSuper_priv
localhostrootYY
localhostmysql.sessionNY
localhostmysql.sysNN
%rootNN
%hiveNN

  查询结果如表1,第3行显示没有远程赋权的能力,那么修改下,两个都改成Y,然后刷新,sql语句如下,注意:修改完以后一定要重启MySQL服务,重启MySQL服务,重启MySQL服务,重要的事说3遍,重启指令,在MySQL所在的Linux服务器下的采用Shell语句service mysql restart

update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'root' and host = '%';
-- 刷新权限
flush privileges;

==查看用户权限==

  查看赋权语句的sql如下:

--查看用户hive
show grants for hive;

  注意:修改完权限以后 一定要刷新服务,或者重启服务,刷新服务用在MySQL数据库上用sql语句flush privileges,重启MySQL服务在MySQL所在的Linux服务器下的采用Shell语句service mysql restart,如下;

[root@node1 tools]# service mysql restart
Shutting down MySQL.... SUCCESS!
Starting MySQL... SUCCESS!
转载自:https://juejin.cn/post/7089750737982324766
评论
请登录