mysql账户权限管理实验_MySQL账户及权限管理

本文介绍了MySQL账户的管理,包括初始账户的查看与权限设置,匿名账户的删除,新账户的创建,以及如何通过GRANT语句进行权限管理。详细讲解了如何为不同主机名的账户设置权限,并提供了实例操作。
摘要由CSDN通过智能技术生成

MySQL不仅要求你必须值得谁(user_name)能连接,还必须指定从什么地方连接(host_name),也就是说即便两个账户拥有相同的名字,如果

MySQL初始账户管理

MySQL的初始账户如下:

[root@lx16 ~]# mysql -u root

mysql> select host,user,password from mysql.user;

+-----------+------+----------+

| host | user | password |

+-----------+------+----------+

| lx16 | root | |

| 127.0.0.1 | root | |

| ::1 | root | |

| localhost | | |

| lx16 | | |

| localhost | root | |

+-----------+------+----------+

MySQL有两类初始用户:

root超级账户:拥有全部的权限,可以做任何事。

匿名账户:如何人都可以通过它连接服务器,但它权限很小。

在默认情况下,这些账户都没有口令,因此为了安全起见,我们首先必须得为所有的root账户设置密码。

设置密码的第一种方法是用SET PASSWORD语句,假如我们现在要给'root'@'localhost'设置口令,只要执行:

mysql> set password for 'root'@'localhost'=password('*****');

设置密码的第二种方法是直接update user权限表,这种方法的好处是可以同时给多个账户设置密码,如下面的语句可以一次修改所有root账户的密码:

mysql> update mysql.user set password=password('***') where user='root';

mysql> flush privileges;

如果用update方式修改,必须明确告诉服务器重新加载权限表(flush privileges)

对于匿名账户,强烈建议将他们删除,删除语句如下:

mysql> drop user ''@'localhost';

mysql> drop user ''@'lx16';

执行完以上操作之后,user权限表里的数据如下:

mysql> select host,user,password from mysql.user;

+-----------+------+-------------------------------------------+

| host | user | password |

+-----------+------+-------------------------------------------+

| lx16 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |

| 127.0.0.1 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |

| ::1 | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |

| localhost | root | *578EC7851088AC1F2A67B100540344B03BD2BA99 |

+-----------+------+-------------------------------------------+

创建新账户

MySQL不仅要求你必须值得谁(user_name)能连接,还必须指定从什么地方连接(host_name),也就是说即便两个账户拥有相同的名字,如果他们将从不同客户端连接,你也要为它们各自创建一个账户。

可以利用以下两个通配符灵活配置主机名的限制:

‘%’ - 匹配任何多个字符

‘-’ - 配置一个字符

test账户可以从任意IP连接

create user 'test'@'%' identified by '***';

test账户只能从本地连接

create user 'test'@'localhost' identified by '***';

test账户只能从'192.168.2.%'网段连接

create user 'test'@'192.168.2.%' identified by '***';

还可以使用IP掩码

create user 'test'@'192.168.2.2

权限管理

对账户授权需要使用Grant语句,如果账户已存在,Grant语句给它授权,如果账户不存在,Grant语句先创建它,再给它授权。

可以通过show grants语句获得自己的权限:

mysql> show grants;

+----------------------------------------------------------------------------------------------------------------------------------------+

| Grants for root@localhost |

+----------------------------------------------------------------------------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*578EC7851088AC1F2A67B100540344B03BD2BA99' WITH GRANT OPTION |

+----------------------------------------------------------------------------------------------------------------------------------------+

也可以通过show grants for 获得其它用户的权限:

mysql>show grants for ''@'localhost';

+--------------------------------------+

| Grants for @localhost |

+--------------------------------------+

| GRANT USAGE ON *.* TO ''@'localhost' |

+--------------------------------------+

上面显示的是两种特殊权限,一种是ALL(后面的PRIVILEGES关键字可省略),表示所有操作的权限(但不包括Grant权限,Grant权限由with grant option赋予);另一种是USAGE,,一种特殊的“无权限”的权限。

在某些少数情况下,我们可能需要更细致的权限控制,MySQL可以做到在列上进行授权,下面这条语句表示把全表的select权限给test,但只把(street,city)这两列的update权限给它:

grant select, update (street,city) on sampdb.member to 'test'@'localhost';

推荐阅读:

生产环境MySQL主主同步主键冲突处理

MySQL + KeepAlived + LVS 单点写入主主同步高可用架构实验

MySQL 主主同步配置

CentOS 6.3下MySQL主从复制笔记

logo.gif

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值