专门讲讲这个MYSQL授权当中的with grant option的作用

对象的owner将权限赋予某个用户(如:testuser1)

grant select ,update on bd_corp to testuser1 [with grant option ]
1.如果带了 with grant option 
那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)
grant select,update on bd_corp to testuser2
2.如果没带with grant option
  那么用户testuser1不能给testuser2授权

简单的说就是将权限传递给第三方

~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~

授权表使用举例

grant用于给增加用户和创建权限,revoke用于删除用户权限。

下面是一些用grant增加用户和创建权限的例子:

mysql> grant all privileges on *.* to [email protected] identified by ‘test‘ with grant option;

这句增加一个本地具有所有权限的test用户(超级用户),密码是test。ON子句中的*.*意味着"所有数据库、所有表"。with grant option表示它具有grant权限。

mysql> grant select,insert,update,delete,create,drop privileges on test.* to [email protected]‘192.168.1.0/255.255.255.0‘ identified by ‘test‘;

这句是增加了一个test1用户,口令是test,但是它只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限。

用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。

给用户创建权限还可以通过直接修改授权表:

mysql> insert into user

values("localhost","test",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y");

mysql> flush privileges;

这两句和上面第一句grant的效果是一样的,也是增加了一个本地的test超级用户。我们看到用grant方便多了,而且还不需flush privileges。

mysql> insert into user (host,user,password) values("192.168.1.0/255.255.255.0","test1",PASSWORD("test")); mysql> insert into db values("192.168.1.0/255.255.255.0","test","test1","Y","Y","Y","Y","Y","Y","N","N","N","N") mysql> flush privileges;

这三句和上面第二句grant的效果也是一样的,也是增加了一个只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限的test1用户,口令是test。要取消一个用户的权限,使用revoke语句。revoke的语法非常类似于grant语句,除了to用from取代并且没有identified by和with grant option子句,下面是用revoke删除用户权限的例子:

mysql> revoke all on test.* from [email protected]‘192.168.1.0/255.255.255.0‘;

这句revoke就撤消了上面第二句grant创建的权限,但是test1用户并没有被删除,必须手工从user表删除:

mysql> delete from user where user=‘test1‘;

mysql> flush privileges;

这样,test1用户就彻底删除了。

时间: 2024-10-14 01:23:38

专门讲讲这个MYSQL授权当中的with grant option的作用的相关文章

远程连接mysql 授权方法详解

今在服务器上有mysql数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库,接下来为您详细介绍 今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器上运行: 1: 创建user用户 复制代码 代码如下: CREATE USER demo IDENTIFIED BY

玩转mysql授权

0. 删除系统多余账号 use mysql; select user,host from mysql.user; delete from user where user=''; flush privileges; mysql创建账号: mysqladmin -u root password '123456' 以demo库test库分别demo_1和test_1表为例:  create database demo; create table demo_1(id int);  insert into

服务器mysql授权连接用户

以下是创建到写入到删除,到drop的全部的过程: //1:创建数据库 create database it1110; //2:进入这个数据库 Use it1110; //3:创建一个数据表 Create table teac( Id int, Name varchar(30) ); //4:写入信息 Insert into teac values(1,’Jack’); //5:查询信息 Select * from teac; //6:修改信息 Update teac set name=’Rose

MYSQL授权用户远程登陆

因为之前一直在服务器上直接操作mysql,所以没有遇到过什么问题,今天开发突然要测试个功能,需要连接数据库,发现一直连接不上! 因为时间过得比较久mysql的root密码已经忘记 1.linux下更改root密码 vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables skip-grant-tables wq保存 /etc/init.d/mysqld reatart #重启mysql服务 mysql #登录mysql   Welcome to the

mysql 授权

cd /usr/local/mysql/bin/grant all privileges on *.* to 'root'@'%' identified by '12345678';flush privileges; grant select on weixin.wx_tuijian to 'bbc_select'@'%' identified by 'bbc_select'; mysql 授权,布布扣,bubuko.com

2.MySQL授权命令grant的使用方法

本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant select on testdb.* to [email protected]'%'grant insert on testdb.* to [email protected]'%'grant update on testdb.* to [email pro

MySQL授权远程网络连接

1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION;flush privileges; 2.授权用户root使用密码jb51从指定ip为218.12.50.60的主机连接到mysql服务器: GRANT ALL PRIVILEGES ON *.* TO 'root'@'218.12.50.60' IDENTIFIE

mysql授权远程连接

 查一下你的MYSQL用户表里, 是否允许远程连接  1.授权 mysql>grant all privileges on *.*  to  'root'@'%'  identified by 'youpassword'  with grant option; mysql>flush privileges; 2.修改/etc/mysql/my.conf 找到bind-address = 127.0.0.1这一行 改为bind-address = 0.0.0.0即可

MYSQL授权先后顺序的测试

最近实际工作中遇到一个小问题,查看授权,明明已经给一个表授权了create,但是还是报错无create权限. 下面是详细的步骤以及最终的解决方案. 可以看出mysql授权上,有一定的匹配规则. 1.root用户,创建数据库 mysql> create database gw_cgm        ; Query OK, 1 row affected (0.01 sec) mysql>  create database gw_ga     ; Query OK, 1 row affected (