首页 > 代码库 > mysql的权限管理

mysql的权限管理

一:MySQL权限经验原则:

    权限控制主要是出于安全因素,因此需要遵循一下几个经验原则:

    1、只授予能满足需要的最小权限,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。

    2、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。

    3、初始化数据库的时候删除没有密码的用户。安装完数据库的时候会自动创建一些用户,这些用户默认没有密码。

    4、为每个用户设置满足密码复杂度的密码。

    5、定期清理不需要的用户。回收权限或者删除用户。

权限分布

可能的设置的权限

表权限

‘Select‘, ‘Insert‘, ‘Update‘, ‘Delete‘, ‘Create‘, ‘Drop‘, ‘Grant‘, ‘References‘, ‘Index‘, ‘Alter‘

列权限

‘Select‘, ‘Insert‘, ‘Update‘, ‘References‘

过程权限

‘Execute‘, ‘Alter Routine‘, ‘Grant‘

grant命令:
mysql> grant all privileges on *.* to def@‘localhost‘ identified by "123456" with grant option;Query OK, 0 rows affected (0.09 sec)

grant:赋予

privileges:特权

*.*:前面的*号用来指定数据库名,后面的*号用来指定表名

identified by:指定密码

def@localhost:前面的def表示用户名,后面的localhost是主机,也可以填写IP类。

with grant option:这个选项表示该用户可以将自己拥有的权限授权给别人

=>总之那句sql语句就是创建一个只允许从本地登录的超级用户def,并允许将权限赋予别的用户,密码为:123456

查看当前权限:

mysql> show grants;+---------------------------------------------------------------------+| Grants for root@localhost                                           |+---------------------------------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘localhost‘ WITH GRANT OPTION || GRANT PROXY ON ‘‘@‘‘ TO ‘root‘@‘localhost‘ WITH GRANT OPTION        |+---------------------------------------------------------------------+2 rows in set (0.01 sec)

查看某一个用户的权限:

mysql> show grants for ‘jack‘@‘%‘;+-----------------------------------------------------------------------------------------------------+| Grants for def@%                                                                                   |+-----------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO ‘def‘@‘%‘ IDENTIFIED BY PASSWORD ‘*9BCDC990E611B8D852EFAF1E3919AB6AC8C8A9F0‘ |+-----------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

删除用户:

mysql> drop user ’def‘@‘localhost‘;Query OK, 0 rows affected (0.01 sec)

  

mysql的权限管理