|
[ 2010-8-31 ] (1)实现原理 |
ORACLE等大型数据库的权限验证,一般都是XX拥有ZZ的权限,而MySQL数据库的权限验证在设计阶段就体现的有所不同,它在这中间又加了一级纬度,变成:从YY来的那个XX拥有ZZ的权限,如果换一个角度来描述,也可以说是:XX只有从YY连接过来,才能够访问ZZ。这样理解的话,就跟ORACLE这类数据库的身份验证机制相同了,只不过ORACLE这类数据库中,默认是不加YY这一层的(如果想加当然也可以支持),而在MYSQL中,YY成了一个必选项。 |
|
[ 2010-9-16 ] (2)创建用户 |
MySQL中对于用户权限的授予和解除比较灵活,即可以通过专用命令,也可以通过直接操作字典表来实现,正所谓条条道路通目标。不过话说回来,修的马路多不叫奇迹,比奇迹更神奇的是,这条条大路居然都修成了高速路;比神奇的奇迹更神奇的是,这些高速居然都是免费的;比神奇的神奇奇迹更神奇,那就是神迹啊,额地神哪,免费的高速居然也不堵车~~~ |
|
[ 2010-9-29 ] (3)管理用户权限 |
mysql中授予权限是通过grant命令,收回权限则是revoke,看起来与ORACLE相同,事实确实比较相似~~ |
|
[ 2010-10-14 ] (4)全局权限 |
总的来看,MYSQL的权限从大的粒度上划分可以分成5类:全局、数据库、表、列、程序,通过对这5个大类权限的细分,可以精确地为某个用户分配从某台机器连接进来访问某个数据库下某个表的某个列的某部分权限。 |
|
[ 2010-10-25 ] (5)管理数据库权限 |
MySQL中的数据库(DB)从功能上来看,有点儿类似ORACLE数据库中的表空间,都是一个提供对象存储的空间(information_schema除外,该db比较特殊,后面章节将专门描述),但是MySQL中的数据库与ORACLE中的表空间不同也表现的非常突出。比如说,MySQL中的数据库,不过是对应操作系统中的一个目录,也就是说,不必通过create database语句创建,直接在操作系统一级指定位置创建一个目录,然后到mysql命令行下show databases,也是能看到的。 |
|
[ 2010-10-26 ] (6)管理表、列及程序相关权限 |
表做为对象,已经进入到一个相对细粒度的权限级别,这部分权限存在于mysql.tables_priv表中。我觉着很多初学者在学习MySQL权限操作时,由于对整个权限体系了解有限,甚至可能都不知道能够为目标授予什么样的权限,这个问题解决起来也很简单,可以直接看官方文档,文档中对所有可授予的权限专门有个列表(其实前面2.2小节中列的表格就是抄自官方文档)写的清清楚楚明明白白,当然文档没准也看过,就是记不住(其实MySQL中的权限相比ORACLE已经少太多了),这处情况下问题也很好解决,desc下相关的权限表即可。 |
|