MySQL用户与权限的管理详解

本文实例讲述了MySQL用户与权限的管理。分享给大家供大家参考,具体如下:

用户连接到MySQL,可以做各种查询,这都是MySQL用户与权限功能在背后维持着操作。

用户与数据库服务器交互数据,分为两个阶段:

(1)你有没有权连接上来
(2)你有没有权执行本操作

1、你有没有权连接上来

服务器如何判断用户有没有权连接上来?

依据:

1)你从哪里来?host
2)你是谁?user
3)你的密码是多少?password

用户的这三个信息,存储在mysql库中的user表中。

修改host域,使IP可以连接

mysql>update user set host='192.168.137.123' where user = 'root';
mysql>flush privileges; --冲刷权限

修改用户密码

mysql>update user set password=password('11111111') where xxx;
mysql>flush privileges; --冲刷权限

2、你有没有权执行本操作

在mysql中,有一个库是mysql库,在这个库中有三个表,一个是user表,user表中存储了所有用户的权限信息。一个是db表,db表存储的是所有用户在数据库层的权限信息。一个是tables_priv表,tables_priv表存储的是所有用户在表层的权限信息。

用户登录,user表首先能限制用户登录,其次还保存了该用户的全局权限,如果该用户没有任何权限,那么将从db表中查找该用户是否有某个数据库的操作权限,如果都没有,将从table_priv表中查找该用户是否有某个表的操作权限,如果有,则该用户可以按照已有的权限来操作该表。

1)全局授权和收回

全局授权格式:

grant [权限1,权限2,权限3] on *.* to user@'host' identified by 'password'

常用权限:all、create、drop、select、insert、delete、update

授权:

创建lisi用户,host为192.168.191.%,%通配符表示192.168.191.xxx结尾的主机都可以连接,密码为12345678。

grant all on *.* to lisi@'192.168.191.%' identified by '12345678';

收回权限:

revoke all on *.* from lisi@'192.168.191.%';

2)数据库级授权和收回

需求:让lisi用户拥有mysqlmaster数据库的所有操作权限

授权:

grant all on mysqlmaster.* to lisi@'192.168.191.%' identified by '12345678';

收回:

revoke all on mysqlmaster.* from lisi@'192.168.191.%';

3)表级授权和收回

需求:让lisi用户具有mysqlmaster数据库下的goods表的insert、update、select三个操作的权限。

授权:

grant insert,update,select on mysqlmaster.goods to lisi@'192.168.191.%' identified by '12345678';

收回:

revoke insert,update,select on mysqlmaster.goods from lisi@'192.168.191.%';

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》、《MySQL数据库锁相关技巧汇总》及《MySQL常用函数大汇总》

希望本文所述对大家MySQL数据库计有所帮助。

(0)

相关推荐

  • php实现mysql数据库连接操作及用户管理

    文件列表..文件内容.. dbconn.php userListt.php editUser.php editDo.php detailUser.php deleteUser.php addUser.php addDo.php <dbconn.php> <?php // 创建数据库连接 $con = mysql_connect("localhost",'root','') or die('error:'.mysql_error()); mysql_select_db(

  • MySQL中基本的用户和权限管理方法小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户: CREATE USER username IDENTIFIED BY 'password'; 新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下: GRANT ALL PRIVILEGES ON *.

  • MySQL创建用户与授权及撤销用户权限方法

    MySQL中创建用户与授权的实现方法. 运行环境:widnows xp professional + MySQL5.0 一, 创建用户 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,

  • Mysql 5.7.18 利用MySQL proxies_priv实现类似用户组管理

    利用 MySQL proxies_priv(模拟角色)实现类似用户组管理 角色(Role)可以用来批量管理用户,同一个角色下的用户,拥有相同的权限. MySQL5.7.X以后可以模拟角色(Role)的功能,通过mysql.proxies_priv模拟实现 1.配置proxy mysql> show variables like "%proxy%"; #查看当前proxy是否开启,下图表示没有开启 mysql> set global check_proxy_users =on

  • MySQL用户权限验证与管理方法详解

    本文实例讲述了MySQL用户权限验证与管理方法.分享给大家供大家参考,具体如下: 一.Mysql权限分两阶段验证 1. 服务器检查是否允许连接:用户名.密码,主机地址. 2. 检查每一个请求是否有权限实施. 二.Mysql权限列表 权限 权限级别 权限说明 create 数据库.表或索引 创建数据库.表或索引权限 drop 数据库或表 删除数据库或表权限 grant option 数据库.表或保存的程序 赋予权限选项 references 数据库或表 外键权限 alter 表 更改表,比如添加字

  • MySQL用户管理

    MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么.MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限.两条语句扮演了mysql数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法.CREATE和REVOKE语句影响4个表:授权表内容 user 能连接服务器的用户以及他们拥有的任何全局权限 db 数据库级权限 tables_priv 表级权限 c

  • MySQL用户账户管理和权限管理深入讲解

    前言 MySQL 的权限表在数据库启动的时候就载入内存,当用户通过身份认证后,就在内存中进行相应权限的存取,这样,此用户就可以在数据库中做权限范围内的各种操作了. 下面话不多说了,来一起看看详细的介绍吧 mysql 的权限体系大致分为5个层级: 全局层级 全局权限适用于一个给定服务器中的所有数据库.这些权限存储在mysql.user表中.GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限. 数据库层级 数据库权限适用于一个给定数据库中的所有目标.这些权限存储

  • mysql命令行下用户管理方法分享

    mysql安装后好,会有一个名字为mysql的数据库,存放用户的表是user,mysql数据库的用户管理就是围绕这个表展开的,当然还有一些表,例如:tables_priv,procs_priv,clumns_priv,information_schema数据库里面的USER_PRIVILEGES等. 如果有mysql管理工具phpmyadmin的话,我们可以通过图形画界面来对用户进行管理,但是如果没有phpmyadmin这样的管理工具怎么办呢?这个时候,我们可以通过命令行执行sql语句来管理my

  • mysql数据库添加用户及分配权限具体实现

    创建用户并分配权限: 复制代码 代码如下: insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));//创建用户 grant all privileges on dbname.* to 'username'@'%' identified by 'password';//创建用户并分配所有权限 grant select,upd

  • mysql 新增、删除用户和权限分配

    1. 新增用户 复制代码 代码如下: mysql>insert into mysql.user(Host,User,Password) values("localhost","lionbule",password("hello1234"));mysql>flush privileges; 2. 修改用户密码 复制代码 代码如下: mysql>update mysql.user set password=password('new

  • MySQL用户权限管理详解

    用户权限管理主要有以下作用: 1. 可以限制用户访问哪些库.哪些表 2. 可以限制用户对哪些表执行SELECT.CREATE.DELETE.DELETE.ALTER等操作 3. 可以限制用户登录的IP或域名 4. 可以限制用户自己的权限是否可以授权给别的用户 一.用户授权 复制代码 代码如下: mysql> grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option;  

  • MySQL验证用户权限的方法

    知识归纳 因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host. 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先 Host列上,越是确定的Host越优先,[localhost, 192.168.1.1, wiki.yfang.cn] 优先于[192.168.%, %.yfang.cn],优先于[192.%, %.cn],优先于[%] User列上,明确的username优先于空u

随机推荐