三、权限级别

总的来看,MYSQL的权限从大的粒度上划分可以分成5类:全局、数据库、表、列、程序,通过对这5个大类权限的细分,可以精确地为某个用户分配从某台机器连接进来访问某个数据库下某个表的某个列的某部分权限。

授权主要是通过grant命令(或手动向字典表中插入或修改记录),对应的权限关键字,就是2.2小节中所列的priv_type,相对于ORACLE数据库来说,我个人认为,MySQL数据库中权限设定真简单,注意,简单不是一个贬义词,三思曾经无数次无数个场合强调过这样一种观点:简单意味着灵活,而灵活在有心人的手上能实现的功能非常之强大。

本章尽可能多的通过示例,帮助大家理解GRANT语句的用法,当然,最重要的是理解MySQL数据库的权限体系。

提示:user/db/host几个字典表中,host值的比较对大小写不敏感。User、Password、Db和Table_name值对大小写敏感。Column_name值对大小写不敏感。

3.1、全局

所谓全局,指定的是拥有该Mysql服务器所有数据库的[所有]对象的[所有]权限(注:[]表示可选),与全局相关的权限信息记入mysql.user表。默认情况下,使用CREATE USER创建的用户拥有登录MySQL数据库的权限和操作test库的权限(关于test数据库的权限问题,将在后面章节中专门描述),此时查看mysql.user表中的信息,所有与权限相关列的列值均应为'N',表示无权限,一旦授予了全局操作权限,则mysql.user表中权限对应列值应变为'Y',这样,该用户就拥有在所连接的MySQL服务器下所有数据库中执行相应操作的权限。

例如,新建用户jss,并授予所有数据库中拥有create表的权限,操作如下:

mysql> create user jss@'%' identified by 'jss';

Query OK, 0 rows affected (0.00 sec)

mysql> grant create on *.* to jss;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from user where user='jss'\G

*************************** 1. row ***************************

Host: %

User: jss

Password: *284578888014774CC4EF4C5C292F694CEDBB5457

Select_priv: N

Insert_priv: N

Update_priv: N

Delete_priv: N

Create_priv: Y

Drop_priv: N

Reload_priv: N

Shutdown_priv: N

Process_priv: N

File_priv: N

Grant_priv: N

References_priv: N

Index_priv: N

Alter_priv: N

Show_db_priv: N

Super_priv: N

Create_tmp_table_priv: N

Lock_tables_priv: N

Execute_priv: N

Repl_slave_priv: N

Repl_client_priv: N

Create_view_priv: N

Show_view_priv: N

Create_routine_priv: N

Alter_routine_priv: N

Create_user_priv: N

Event_priv: N

Trigger_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 01 row in set (0.00 sec)

此权一授,则该用户可轻松查看当前连接的MySQL数据库中创建的所有db,并能够在任意db中创建表对象(information_schema库除外,该库具有一定特殊性,后面章节详述)。

mysql> select user();

+---------------+

| user()        |

+---------------+

| jss@10.0.0.99 |

+---------------+

1 row in set (0.01 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| jssdb              |

| mysql              |

| test               |

+--------------------+

4 rows in set (0.00 sec)

mysql> use jssdb;

Database changed

mysql> create table j1 (id int);Query OK, 0 rows affected (0.03 sec)

不过需要注意,CREATE权限特指CREATE表对象,别的权限没有,例如,想删除或修改对象是不行的,甚至想查询该对象也是不行的:

mysql> drop table j1;

ERROR 1142 (42000): DROP command denied to user 'jss'@'10.0.0.99' for table 'j1'

mysql> alter table j1 add vl varchar(20);

ERROR 1142 (42000): ALTER command denied to user 'jss'@'10.0.0.99' for table 'j1'

mysql> select * from j1;ERROR 1142 (42000): SELECT command denied to user 'jss'@'10.0.0.99' for table 'a1'

是这样的网总:我们授予的仅仅只是create权限,想删除是不行的是肯定不行的。对对,即使要删除的对象是自己刚刚创建的也不行。不不,多贵的电脑都不行。

这点与ORACLE数据库中对应权限的设计并不相同,ORACLE中的用户拥有CREATE对象的话,同时默认也将拥有该对象的ALTER、DROP、GRANT等权限。

提示:全局下的CREATE权限不仅能够建表,还能够建库。

=======================================

查看之前的连载:

mysql数据库index权限_MySQL数据库权限体系入门(4)---管理全局权限相关推荐

  1. mysql赋予用户数据库所有权限_MySQL 数据库赋予用户权限操作表

    MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据 ...

  2. mysql给用户授予某数据库权限_mysql 数据库授权(给某个用户授权某个数据库)

    mysql 数据库授权(给某个用户授权某个数据库) 2016-10-10 带你飞 1.新建用户. //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysq ...

  3. mysql数据库允许访问权限_MySQL数据库设置远程访问权限的方法

    有时需要远程连接mysql数据库,可以参考如下的权限配置进行操作. 本节内容: 如何远程访问MySQL数据库的权限设置方法. 讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. ...

  4. mysql 数据库表重建_mysql 数据库表重建

    数据库内核月报 - 2015 / 09-MySQL · 捉虫动态 · 建表过程中crash造成重建表失败 问题描述 主库的create table语句传到备库,备库SQL线程执行过程中报错: Erro ...

  5. mysql自动同步数据_MySQL数据库实现双向自动同步

    [IT168 技术]本文将探讨如何通过MySQL数据库的高级特性,实现数据库的双向自动同步,确保数据的冗余与完整性.通过以往真实的项目实战与经验,把操作实施过程全部记录下来,主要有以下几个主要内容. ...

  6. mysql数据库表重建_mysql数据库表重建

    数据库内核月报 - 2015 / 09-MySQL · 捉虫动态 · 建表过程中crash造成重建表失败 问题描述 主库的create table语句传到备库,备库SQL线程执行过程中报错: Erro ...

  7. mysql数据库用户授权_MySQL数据库用户授权(GRANT)

    在对 MySQL 的日常管理和实际操作中,为了数据库的安全,避免恶意用户使用 root 账号控制数据库,我们通常会创建一系列具备适当权限的账号.这样,我们就可以不用或少用 root 账号登录NySQL ...

  8. mysql数据库版本回退_mysql数据库

    数据库的简介 数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据库中的数据按一定的数学模型组织.描述和存储,具有较小的冗余,较高的数据独立性和易扩展性, ...

  9. mysql特殊字符波浪号_mysql数据库特殊字符

    关于 mysql数据库特殊字符的搜索结果 回答 详细解答可以参考官方帮助文档 说明 部分RDS for MySQL实例的账号管理机制已升级.使用本文前,请先检查您的实例是否已升级,检查方式如下: 登录 ...

最新文章

  1. android studio字符串转整型,Android Studio 中的FindBugs插件使用,轻松帮你发现Bug (转)...
  2. python123 https://github.com/jackfrued/Python-100-Days/tree/master/Day01-15
  3. 12、Kubernetes核心技术Ingress
  4. java win8 mac地址_Win8怎么查看MAC地址_Win8查看电脑MAC地址方法-192路由网
  5. bzoj3920: Yuuna的礼物(莫队+分块套分块)
  6. c语言glut打正方形,OpenGL绘制正方形并用键盘移动
  7. c++ qt获取电脑的内存_Qt官方示例信号量
  8. python为什么没有指针_Python中有指针吗?
  9. pythonsample_python sample code | 学步园
  10. android社交软件源码,原生仿微信社交社区即时通讯聊天双端APP源码开源 带PC客户端...
  11. 旅游网站设计制作方案
  12. 一次ES性能优化,我发现了搞大数据的真相……
  13. 苹果微信下载 iOS微信各版本列表
  14. ROM修改---修改CPU信息和GPU信息
  15. c语言中strstr作用,strstr函数的功能
  16. springboot佛祖启动图案
  17. Android仿饿了么搜索功能
  18. 五月底的数博会,众享比特带你熟悉最新参会指南
  19. java 身份证正则校验工具类
  20. 论文阅读【7】HHM隐马尔科夫模型

热门文章

  1. 玩转电机驱动——电机编码器
  2. Python之特征选择实战(转载)
  3. PON---无源光网络
  4. android大于什么系统版本,谷歌发布最新Android各版本占比数据:9.0份额超过10%
  5. 计算机及应用英文,计算机及应用专业英文简历模板
  6. 南京信息工程大学计算机专业报录比,南京信息工程大学研究生院(南京信息工程大学报录比2019)...
  7. 电动汽车的三电系统概述
  8. 全面解析FPGA的基础知识
  9. 《中国企业报》专访高承实:区块链的技术本质与应用 | 另:欢迎参加中国数据与存储峰会-【区块链技术与实践】分论坛...
  10. 在Linux中安装P4遇到的问题