码迷,mamicode.com
首页 > 数据库 > 详细

MySQL用户与权限

时间:2015-05-08 01:51:59      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:mysql用户与权限



1.MySQL用户和权限管理

         user表:包含用户的帐号,全局权限

         db表:数据库级别的权限定义

         tables_priv表:表级别权限

         columns_priv表:列级别权限

         procs_priv表:存储过程和存储函数相关的权限

         proxies_priv表:代理用户权限



2.用户帐号:

    用户名@主机构成

        用户名:16个字符以内

        主机:

           主机名:www.baidu.com| mysql

           IP192.168.1.100

           网络地址:192.168.1.0/255.255.255.0

               通配符:% _

                  192.168.%.%

                  %.baidu.com

                                              

         --skip-name-resolve:为了加速mysql服务器的性能,而且访问mysql的时候也不需要它通过主机名来认证,关闭一切基于主机名认证的方式来进行授权,提高用户连接时候的速度



3.权限级别:

         全局级别:SUPER,

         库级别:

         表级别:

         列级别:

         存储过程和存储函数级别:



4.创建用户

         第一种:CREATEUSER username@host IDENTIFIED BY ‘password‘

        

         第二种:GRANT

                  

         第三种:INSERT INTO mysql.user

                mysql>FLUSH PRIVILEGES;



4.1查看某个用户的授权信息

         SHOWGRANTS FOR ‘username@host‘;




5.为用户添加student库中“创建”的权限

技术分享

技术分享



当创建数据库的时候,显示没有权限

技术分享



6.为用户添加创建sdb和创建sdb库下任何表的权限

技术分享

技术分享



7当我们为新创建的tb1表插入数据的时候,显示没有权限

技术分享



8.为用户添加sdb库下插入数据的权限

技术分享


当授权完成之后也重读授权表(执行了FLUSH PRIVILEGES;)但是还是不能插入数据

技术分享


当退出当前mysql再重新登录的时候发现可以插入数据了,所以INSERT权限重新登录

技术分享




9.为用户同时添加UPDATEDELETE权限,以及DELETE权限

技术分享


更新、删除的时候显示没有权限,和INSERT权限一样,需要重新登录

技术分享




于是重新登录,发现没有SELECT 权限,因为要更新或者删除某一条记录,需要先查到之后才能进行删除,所以需要SELECT权限

技术分享

技术分享

技术分享




10.撤销某个用户的某项权限

技术分享




11.撤销用户的UPDATE权限,然后为用户添加只能修改sdb库下stb1表的age字段的权限

技术分享

技术分享

技术分享




12.修改MySQL的全局变量,killMySQL进程,需要有SUPER权限

技术分享

技术分享

技术分享




13.删除用户、用户重命名

DROP USER username@host

RENAME USER old_name TO new_name;



14.忘记root密码

14.1关闭MySQL服务

技术分享



14.2编辑mysql脚本,添加相关参数

    编辑/etc/init.d/mysqld,找到下面内容,然后添加

         --skip-grant-tables

        --skip-networking

技术分享

技术分享




14.3启动MySQL服务,并连接到MySQL

技术分享



14.4修改密码

当视图使用修改授权表的方式去修改密码的时候,MySQL显示说不可以,因为当前启动的MySQL服务已经跳过授权表了

技术分享



所以只能通过修改user表的方式来修改密码了

技术分享



14.5修改完密码以后,停止MySQL服务,删除/etc/init.d/mysqld中刚才添加的内容

    --skip-grants-table --skip-working然后重启MySQL服务



15.权限手册

http://dev.mysql.com/doc/mysql-security-excerpt/5.5/en/privileges-provided.html

技术分享

技术分享



16.用户授权的一些其它选项说明

技术分享

一般情况下不需要使用object_type,当我们要指定特定的,表、存储函数、存储过程

的时候,就需要指定了


当需要为db_name库中的存储函数abc授权的时候,如果执行以下命令,是否可以正常

的给abc存储函数授权呢?



GRANT EXECUTE ON db.abc TO username@‘%‘;

知道abc代表的是什么吗、?---》不知道----》所以我们需要指定授权的类型

 

所以要想给存储函数abc授权,需要执行

GRANT EXECUTE ON FUNCTION db.abc TO username@‘%‘;





本文出自 “凡夫俗子” 博客,请务必保留此出处http://caoyt.blog.51cto.com/9978141/1644010

MySQL用户与权限

标签:mysql用户与权限

原文地址:http://caoyt.blog.51cto.com/9978141/1644010

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!