最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

[MySQL]账户及权限管理_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:42:10
文档

[MySQL]账户及权限管理_MySQL

[MySQL]账户及权限管理_MySQL:bitsCN.com [MySQL]账户及权限管理 MySQL初始账户管理 MySQL的初始账户如下:[sql] [root@lx16 ~]# mysql -u root mysql> select host,user,password from mysql.user; +-----------+------+----------+ |
推荐度:
导读[MySQL]账户及权限管理_MySQL:bitsCN.com [MySQL]账户及权限管理 MySQL初始账户管理 MySQL的初始账户如下:[sql] [root@lx16 ~]# mysql -u root mysql> select host,user,password from mysql.user; +-----------+------+----------+ |


bitsCN.com

[MySQL]账户及权限管理

MySQL初始账户管理

MySQL的初始账户如下:

[sql] [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'设置口令,只要执行:

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

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

[sql] mysql> update mysql.user set password=password('***') where user='root'; mysql> flush privileges; 

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

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

[sql] mysql> drop user ''@'localhost'; mysql> drop user ''@'lx16'; 

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

[sql] 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),也就是说即便两个账户拥有相同的名字,如果他们将从不同客户端连接,你也要为它们各自创建一个账户。

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

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

‘-’ - 配置一个字符

[sql] 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语句获得自己的权限:

[sql] mysql> show grants; +----------------------------------------------------------------------------------------------------------------------------------------+ | Grants for root@localhost | +----------------------------------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*578EC7851088AC1F2A67B100540344B03BD2BA99' WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------------+ 

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

[sql] 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权限给它:

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


bitsCN.com

文档

[MySQL]账户及权限管理_MySQL

[MySQL]账户及权限管理_MySQL:bitsCN.com [MySQL]账户及权限管理 MySQL初始账户管理 MySQL的初始账户如下:[sql] [root@lx16 ~]# mysql -u root mysql> select host,user,password from mysql.user; +-----------+------+----------+ |
推荐度:
标签: 用户 权限 管理
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top