权限包括  insert   delete   update   select   all privileges

登录MySQL

> mysql -uroot -p
Enter password: ****

1. 添加用户

mysql> insert into mysql.user(host,user,password) values('%', 'xiaoming', password('xiaoming123'));
mysql> flush privileges;

现在可以使用帐号(xiaoming,xiaoming123)登录MySQL了。但是只有默认权限,仅能操作两个数据库(information_schema和test)

2. 授权

grant <权限列表> on <关系> to <用户/角色>

等价于

grant <权限列表> on <关系> to <用户/角色>@'%'

表示授权给来自所有主机该用户

@<主机>  用来指定用户登录的主机

grant insert on school.* to xiaoming

此时,用户xiaoming就拥有了对数据库school的insert权限。

mysql> show databases; ---授权前
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec) mysql> show databases; --- 授权后
+--------------------+
| Database |
+--------------------+
| information_schema |
| school |
| test |
+--------------------+
3 rows in set (0.00 sec) mysql> use school;
Database changed
mysql> insert into student(name,score) values('xiaoming',60);
Query OK, 1 row affected (0.08 sec) mysql> select * from student;
ERROR 1142 (42000): SELECT command denied to user 'xiaoming'@'10.0.2.2' for table 'student'

3. 添加用户并授权

grant <权限> on <关系> to <用户> identified by <密码> [with grant options]

mysql> grant select on school.* to xiaoqiang@'%' identified by 'xiaoqiang123';
mysql> flush privileges;

with grant options  参数表示被授权的用户可以将权限再授权给其他用户。

4. 查看用户权限

show grants for <用户/角色>

mysql> show grants for xiaoqiang;
+----------------------------------------------------------------------------------------------------------+
| Grants for xiaoqiang@% |
+----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xiaoqiang'@'%' IDENTIFIED BY PASSWORD '*CFE5D9A8AB243F294A8D3C5B7F2B6BDCF7F71DB5' |
| GRANT SELECT ON `school`.* TO 'xiaoqiang'@'%' |
+----------------------------------------------------------------------------------------------------------+
2 rows in set

其中的 “usage” 表示默认权限

5. 回收权限

revoke <权限> on <关系> from <用户/角色>

mysql> revoke select on school.* from xiaoqiang;
mysql> flush privileges;

在用户下次登录后生效

默认是级联回收,即:会将该用户的该权限以及该用户授予给其他用户的该权限全部回收。

revoke <权限> on <关系> from <用户/角色> restrict

使用 restrict 防止级联回收。

MySQL数据库用户、角色、授权的更多相关文章

  1. MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权

    一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...

  2. MySQL 创建用户 与 授权

    例,需要给 121.52.215.100 连接添加一个用户 dee,密码是 123456,他只能对数据库 vshop 有 select 权限: CREATE USER '; GRANT SELECT ...

  3. php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法

    php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法 解决办法, 通过 insert 命令的方式进行创建. 创建数据库用户: $sql= "insert ...

  4. 14-补充内容:MySQl创建用户和授权

    [转]14-补充内容:MySQl创建用户和授权 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操 ...

  5. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)

    昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(f ...

  6. Mysql创建用户并授权以及开启远程访问

    Mysql创建用户并授权以及开启远程访问     一.创建用户并授权 1.登录mysql mysql -u root -p 2.创建数据库 create database test;//以创建test ...

  7. mysql更新(七) MySQl创建用户和授权

    14-补充内容:MySQl创建用户和授权   权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作 ...

  8. MySQL创建用户并授权及撤销用户权限

    这篇文章主要介绍了MySQL创建用户并授权及撤销用户权限.设置与更改用户密码.删除用户等等,需要的朋友可以参考下 MySQL中创建用户与授权的实现方法. 运行环境:widnows xp profess ...

  9. mysql(单表查询,多表查询,MySQl创建用户和授权,可视化工具Navicat的使用)

    单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT ...

  10. mysql 创建用户,授权,查询用户等

    MySQL创建用户与授权 一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用 ...

随机推荐

  1. 【原生JS】滑动门效果

    效果图: 思路:通过每次鼠标移动至目标上使所有图片重置为初始样式再向左移动目标及其左侧每个图片隐藏部分距离即实现. HTML: <!DOCTYPE html> <html> & ...

  2. 利用谓词实现List<>的Find等高级操作

    public class Person        {            public int Id { get; set; }            public string Name { ...

  3. pycharm下的多个python版本共存(一)

    经历过IDLE,anaconda,和pycharn的编程环境,并进行了一段时间的项目编程后,决定使用pycharm作为以后的工作环境. 一方面因为项目组其他人推荐,另一方面在使用过程中比较顺手.当然很 ...

  4. 【codeforces 761C】Dasha and Password(动态规划做法)

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  5. git提交时如何忽略一些文件

    起因 在使用git对软件进行版本管理的时候我们总有一些不需要提交到版本库里的文件和文件夹,或者在管理一个实际应用的开源项目的时候,不可以把带有数据库信息的文件上传到开源平台当中,这个时候我们就需要让g ...

  6. 通过作用域链解析js函数一些难以理解的的作用域问题

    基本原理 js函数在执行时,系统会创建一个隐式的属性scope,scope中存储的是函数的作用域链. 通过对这个scope的分析,就能解释JavaScript中许多难以理解的问题: 例1: funct ...

  7. Git的使用--如何将本地项目上传到Github(两种简单、方便的方法..)

    https://blog.csdn.net/u014135752/article/details/79951802 总结:其实只需要进行下面几步就能把本地项目上传到Github 1.在本地创建一个版本 ...

  8. RabbitMQ-事务和Confirm消息确认

    ,如果要保证消息的可靠性,需要对消息进行持久化处理,然而消息持久化除了需要代码的设置之外,还有一个重要步骤是至关重要的,那就是保证你的消息顺利进入Broker(代理服务器),如图所示: 正常情况下,如 ...

  9. H3C查看、删除已经保存配置文件--用户图示(console)以上

    <H3C>display saved-configuration    //显示已经保存的内容 <H3C>reset saved-configuration      //删除 ...

  10. Linux 内核 /sys/class类

    我们在本章中要考察最后的设备模型概念是类.一个类是一个设备的高级视图, 它抽象出 低级的实现细节. 驱动可以见到一个 SCSI 磁盘或者一个 ATA 磁盘, 在类的级别, 它们都 是磁盘. 类允许用户 ...