mysql权限说明

来源:互联网 发布:淘宝定制商品是什么 编辑:程序博客网 时间:2024/06/05 00:12

转 http://blog.csdn.net/m582445672/article/details/7804799

 

关于权限问题
 
1.MySQL是根据用户名和主机名来唯一确定一个用户的.例如:db_name@localhost
 
2.主机地址使用 % 号为通配符.在这里,任何相同的用户名,不同IP的账号,都可以成功匹配(db_name@%)
 
3.如果Mysql用户表里面有明确写明IP地址.则去匹配明确的IP ,例如(da_name@127.0.0.1)
 
4.mysql登陆默认的ip地址是 localhost
 
5.mysql权限分5个等级
     * 全局层级 存放位置在:mysql.user 对应的memory表为:information_schema.USER_PRIVILEGES
     * 数据库层级 存放位置在:mysql.db 对应的memory表为:information_schema.SCHEMA_PRIVILEGES
     * 表层级 存放位置在:mysql.tables_priv 对应的memory表为:information_schema.TABLE_PRIVILEGES
     * 列层级 存放位置在:mysql.columns_priv 对应的memory表为:information_schema.COLUMNS
     * 子程序层级 存放位置在:mysql.procs_priv 对应的memory表为:information_schema.ROUTINES
 
6.mysql client 连接 server 扫描权限的方式.    
     Ⅰ. mysql.user表中的host、user、password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证.
     Ⅱ. 按照mysql.user、mysql.db、mysql.tables_priv、 mysql.columns_priv的顺序来分配权限.
     Ⅲ. 如果user中对应的权限为Y.则此用户对所有数据库的权限都为Y.将不再检查mysql.db、mysql.tables_priv、mysql.columns_priv表
     Ⅳ. 如果user中对应的权限为N.则到db表中检查此用户对应的具体数据库.如果db表为Y.则不用扫描该权限的mysql.tables_priv、mysql.columns_priv.
     Ⅴ. 以此类推.
 
7.MYSQL 视图权限说明.
     Ⅰ. 对视图的操作必须要先对视图对应的表有操作的权限.
     Ⅱ. 对视图的操作有2个默认的参数. 第一个 *为DEFINER 表示创建者. 默认为当前用户. 例如 DEFUNER=root@localhost
 
                                    第二个 *为SQL SECURITY { DEFINER | INVOKER } 表示以什么身份访问这个视图.
                                                 *DEFINER 表示为以创建者的权限去访问这个视图.
                                                 *INVOKER 表示为以调用者的权限去访问这个视图.
 
     Ⅲ.创建视图必须要有create view权限和对应实体表的select的权限.
 
8.MYSQL 存储过程权限说明.
     Ⅰ. 对存储过程有三个权限.create routine、 alter routine、 execute分别是创建权限、修改权限、执行权限.
     Ⅱ. 对存储过程的操作有2个默认的参数. 第一个 *为DEFINER 表示创建者. 默认为当前用户. 例如 DEFUNER=root@localhost
 
                                    第二个 *为SQL SECURITY { DEFINER | INVOKER } 表示以什么身份访问这个存储过程.
                                                 *DEFINER 表示为以创建者的权限去访问这个存储过程.
                                                 *INVOKER 表示为以调用者的权限去访问这个存储过程.
 
9.mysql 触发器的权限说明.
     Ⅰ. 创建触发器必须有super权限才能创建和使用.
     Ⅱ. 对触犯器的操作有1个默认的参数 DEFINER 表示创建者. 默认为当前用户. 例如 DEFUNER=root@localhost
     Ⅲ. 只有创建者对这个触发器有操作的权限,调用者才能使用这个触发器,也就相当隐藏了SQL SECURITY DEFINER 参数
 
原创粉丝点击