MySQL 用户及权限管理?

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

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

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用户


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防火墙设置参考链接

 删除用户


drop USER 'username'@'host';

 刷新权限


flush privilege

 修改用户密码


// 修改指定用户密码

set password for'username'@'host' = password('newpassword'); 

// 设置当前登录用户的密码

set password = password('newpassword'); 

 centos设置防火墙

1.centos6设置防火墙

a.查看防火墙状态


service iptable status

b.重启防火墙


service iptables restart

c.开放端口


/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

/etc/rc.d/init.d/iptables save

d.查看开放的端口


/etc/init.d/iptables status

e.关闭防火墙


servcie iptables stop(临时关闭)

chkconfig iptables off(永久关闭)

f.启动防火墙


service iptables start(临时生效)

chkconfig iptables on(永久生效)

2.centos7设置防火墙

a.查看防火墙状态(3种方式)


1.firewall-cmd --state

2.systemctl list-unit-files|grep firewalld.service

3.systemctl status firewalld.service

b.重启防火墙


systemctl restart firewalld.service

c.开放端口


firewall-cmd --zone=public --add-port=80/tcp --permanent

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

d.查看开放的端口


firewall-cmd --list-ports

e.关闭防火墙


systemctl stop firewalld.service(临时关闭)

systemctl disable firewalld.service(永久禁用)

f.启动防火墙


systemctl start firewalld.service
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!