前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL用户及权限管理?

MySQL用户及权限管理?

作者头像
Mandy的名字被占用了
发布2019-08-06 11:22:13
2.8K0
发布2019-08-06 11:22:13
举报
文章被收录于专栏:菜鸟成长学习笔记

MySQL中为什么要设置用户管理

对于这个话题,我相信对于一个技术人员来说,已经是不能再谈的话题了。说的简单通俗一点就是为了安全。

MySQL中用户的分类

1.超级管理员 我们在安装MySQL之后,MySQL系统为给我们自带一个用户,那就是root用户,这个用户具有MySQL当中所有的,功能这个用户只有最高权限的人才会拥有,一般来说是DBA中职级最高的。同时我们也可以自己手动创建一个普通用户,给它赋予最高的权限,这时候这个普通用户就是超级管理员了,下面会讲解如何创建。 2.普通用户 所谓的普通用户,这就不难理解了,就是只有部分权限的用户啦。一般我们在创建该用户时,会根据这个用户的只能来划分。比如用户只需要做查表操作,就只给select权限,需要做增删改查,就给insert、delete、update、select权限。

如何划分权限

权限的划分非常重要,因为权限的大小决定了该用户对数据库的操作。一般我们划分就按照用户的功能划分。比如普通的开发人员只需要做一些简单的增删改查,就只给这几个权限即可;级别更高一点的,比如需要对数据库导入导出等操作,我们也可以给到对应的权限。

查看mysql系统当前存在的用户

通过1中,我们知道数据库的用户信息存在mysql数据库中的user表中,我们查询该表,结果如下。Host字段是当前用户可登录的ip地址(如果是*则代表可任意地址登录),User字段是用户名称,Password是用户密码。

代码语言:javascript
复制
mysql> select Host, User, Password from user;

Host

User

Password

localhost

root

*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

127.0.0.1

root

*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

::1

root

*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

自定义用户

为什么需要自定义用户呢?我们会从如下几个方面考虑,权限、职能。 默认的root用户属于mysql中的超级管理员的职能,如果每个人都能拿到该root的权限,容易发生一些操作错误,轻者数据库部分数据出现问题,重则整个数据库遭到毁灭。 默认的root用户属于mysql中的超级管理员的职能,容易遭到怀有恶意企图的人所利用。 默认的root用户属于mysql中的超级管理员的职能,给定指定用户相应的权限,可以保证每个用户只能使用该用户职责内的权限,既可以保证数据库的分工更加精细化,同时也保证了数据库的安全。

创建mysql用户

代码语言:javascript
复制
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
// 给该用户授予相应的权限(privileges_name为all时,则表示授予所有权限;当privilege_name具体到某些权限是,privileges不需要添加,下面收回权限处的含义一致)
GRANT privileges_name  privileges ON databasename.tablename TO 'username'@'host';
// 刷新权限,使新创建的用户能够使用
flush privileges;
// 收回用户权限
phpREVOKE privileges_name privilege ON databasename.tablename FROM 'username'@'host';

如果我们创建了相同的用户名,需要删除第一次创建时的用户名,不能只删除mysql库下的user表信息,应该使用drop user username命令进行删除用户操作。然后使用flushprivileges进行权限刷新。如果按照上述操作,提示用户无法登录,查看防火墙状态,centos7防火墙设置参考链接

删除用户

代码语言:javascript
复制
drop USER 'username'@'host';

刷新权限

代码语言:javascript
复制
flush privilege

修改用户密码

代码语言:javascript
复制
// 修改指定用户密码
set password for'username'@'host' = password('newpassword'); 
// 设置当前登录用户的密码
set password = password('newpassword');

centos设置防火墙

1.centos6设置防火墙 a.查看防火墙状态

代码语言:javascript
复制
service iptable status

b.重启防火墙

代码语言:javascript
复制
service iptables restart

c.开放端口

代码语言:javascript
复制
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save

d.查看开放的端口

代码语言:javascript
复制
/etc/init.d/iptables status

e.关闭防火墙

代码语言:javascript
复制
servcie iptables stop(临时关闭)
chkconfig iptables off(永久关闭)

f.启动防火墙

代码语言:javascript
复制
service iptables start(临时生效)
chkconfig iptables on(永久生效)

2.centos7设置防火墙 a.查看防火墙状态(3种方式)

代码语言:javascript
复制
1.firewall-cmd --state
2.systemctl list-unit-files|grep firewalld.service
3.systemctl status firewalld.service

b.重启防火墙

代码语言:javascript
复制
systemctl restart firewalld.service

c.开放端口

代码语言:javascript
复制
firewall-cmd --zone=public --add-port=80/tcp --permanent
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

d.查看开放的端口

代码语言:javascript
复制
firewall-cmd --list-ports

e.关闭防火墙

代码语言:javascript
复制
systemctl stop firewalld.service(临时关闭)
systemctl disable firewalld.service(永久禁用)

f.启动防火墙

代码语言:javascript
复制
systemctl start firewalld.service
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卡二条的技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档