Mysql权限系统非常重要,但同时又是一个很多开发者或管理者所忽略的。权限分配不但,将会造成难以挽回的悲惨后果。我之前所在一家公司,关于数据库权限这块就完全不重视,所有开发者都有线上系统的最高权限。想想看,如果哪天有其中一个人删库了,那么多人你知道是谁弄的吗?所以,大家一定要引起重视。
一般建议最高权限只会给一个人,这个人做为管理者,再去分配其他开发者对应权限。开发阶段本地的库还好些,对于线上的库,给予权限时要慎重。
<强> 强>
Mysql的权限大致分为三类:
- <李>
对数据的操作,比如增删改查。
李> <李>结构的操作,比如创建库,修改表结构等。
李> <李>管理方面的权限,比如创建用户,分配权限等。
李><强> 强>
- <李>
给予最小权限,比如目前该用户只需要看的权限且只需要看一个表时,那就不要去分配所有表的读权限。只限制为一个表的权限,不要怕麻烦就给予所有表的读权限。
李> <李>创建用户时一定要限制ip及设定足够强度的密码。
李> <李>定期清理不需要的用户,及回收那些不需要的权限。
李><强> 强>
<强> 强>
Mysql文档里创建用户的语法如下:
创建用户(如果不存在) 用户[auth_option][、用户[auth_option]]… (需要{没有| tls_option[[和]tls_option]…}] (与resource_option [resource_option]…] [password_option | lock_option]…
参数有点多,别急,慢慢来通过例子来看,首先用最少的选项创建一个账号。
#创建一个无需密码即可本地登录的用户 mysql>创建用户& # 39;u1 # 39; @ # 39; localhost # 39;; 查询好,0行受影响 #创建一个需要密码授权的用户,但不限制ip mysql>创建用户& # 39;u2 # 39; @ # 39; % & # 39;被& # 39;321232 & # 39;; #注意,密码必须使用引号,单引号或双引号都行,但不加就出的错。 #如果不想使用明文的密码,可以使用密码 mysql>选择密码(& # 39;111111 & # 39;); +-------------------------------------------+ |密码(& # 39;111111 & # 39;)| +-------------------------------------------+ | * FD571203974BA9AFE270FE62151AE967ECA5E0AA | +-------------------------------------------+ 1行组 mysql>创建用户& # 39;u3 # 39; @ # 39; 192.168.1. % & # 39;确认密码& # 39;* FD571203974BA9AFE270FE62151AE967ECA5E0AA& # 39;; 查询好,0行影响
<强> 强>
系统用户列表是存放是mysql库里的用户表。
mysql>选择用户、主机account_locked mysql.user;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +
|用户,,,,|主机大敌;,,,| account_locked |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +
|根,,,,| localhost大敌;| N,,,,,,,|
| mysql。会话| localhost,| Y,,,,,,,|
| mysql。系统,,| localhost,| Y,,,,,,,|
| u1,,,,,| localhost大敌;| N,,,,,,,|
| u2,,,,,| %大敌;,,,,| N,,,,,,,|
| u2,,,,,| localhost大敌;| N,,,,,,,|
| u3,,,,,| 192.168.1。% | N,,,,,,,|
+ - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
7行设置
<强> 强>
删除用户的语法如下:
删除用户用户名@ip;
现在我们来删除u2@& # 39; % & # 39;
mysql>删除用户u2@& # 39; % & # 39;; 查询好,影响了
0行这样u2用户就被删除了。
<强> 强>
语法如下:
重命名用户old@& # 39; oldip& # 39;new@& # 39; newip& # 39;;
案例如下:
mysql>重命名用户u1@localhost user1@& # 39; 127.0.0.1 # 39;; 查询好,0行影响
<强> 强>
学完了如何创建账号及管理账号后,我们来看看如何给用户授权以及如何回收不需要的权限。
<强> 强>
给用户授权语法如下:
格兰特权限> mysql>格兰特选择>撤销权限在数据库*表从用户名@ip地址MySQL数据库的权限管理