MySQL数据库的权限管理

  

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数据库的权限管理