1、首先创建用户username以及密码passwd,授权主机localhost。

 create user ‘username’@'localhost'  identified by 'passwd'

创建了用户后,如果不对用户进行授权的话,则此用户只是对test库具有所有的权限,对于其他的所有库都没有权限。

此时这个用户的状态应该是这样的:

 +--------------------------------------------------------------------------------------------------------------+
| Grants for zekai@localhost |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zekai'@'localhost' IDENTIFIED BY PASSWORD '*6BD4D64E6EE7284ED2F9D694BC77D95AF26DD197' |
+--------------------------------------------------------------------------------------------------------------+

那如果要对这个用户进行授权,可以使用下面的第二步:

2、然后授权localhost主机通过用户username管理dbname数据库下面的所有权限。

  1、无需密码:

grant  all  privileges on dbname.*  to 'username'@'localhost'

  2、需要密码:

grant  all  privileges on dbname.*  to 'username'@'localhost'  identified  by  ‘password’

  最后在数据库中用户名的状态:

 +-----------------------------------------------------------------------------------------------------------------------+
| Grants for zekai@localhost |
+-----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'zekai'@'localhost' IDENTIFIED BY PASSWORD '*6BD4D64E6EE7284ED2F9D694BC77D95AF26DD197' |
+-----------------------------------------------------------------------------------------------------------------------+

  所有的操作完成之后,不要忘记下面的语句,这样才能最终生效:

 flush  privileges

以上的记录是对某个用户某个主机进行所有的授权,但是我们可以更加的颗粒化的去限制某个用户的权限。

怎样授权一个用户远程的连接一台主机的数据库:

根据grant的语法,localhost可以使用域名,IP地址或者IP端来进行替代,因此可以使用如下的方法来进行授权:

 a.使用百分号授权

1 grant all on *.* to test@'10.0.0.%'  identified by '123test';

 b.子网掩码配置法:

 grant all on *.* to test@'10.0.0.0/255.255.255.0' identified by 'test123'

 c.对特定的IP进行授权:

 grant all on *.* to test@'10.0.0.5' identified by 'test123'

我们在授权的时候尽可能的给最小的权限,而不是一味的授权“all on”

一个mysql官方的例子:

 CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
GRANT ALL ON db1.* TO 'jeffrey'@'localhost';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
GRANT USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;

可以在mysql的命令行界面使用help grant来进行查看。

怎样将权限进行回收?

使用的是revoke对某个用户的权限进行回收,例子:

 REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';

特别需要注意的是,revoke之后的*.*这个必须要和之前grant的*.*要匹配上,不然的话不可能回收权限。

回收之后,用户的权限:

 GRANT SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'zekai'@'localhost' IDENTIFIED BY PASSWORD '*6BD4D64E6EE7284ED2F9D694BC77D95AF26DD197'

create和grant配合使用,对Mysql进行创建用户和对用户授权的更多相关文章

  1. 003:MySQL账号创建授权以及Workbench

    目录 一. 权限管理 1."用户 + IP"的概念 2. 用户权限管理 3. 基本操作 4. 撤销权限 5.授权和创建用户 二. MySQL模拟角色 三. Workbench与Ut ...

  2. 【转】How to create a new user and grant permissions in MySQL

    MySQL is one of the most popular database management systems. In this tutorial we will cover the ste ...

  3. Mysql 数据库创建基本步骤

    1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user jame@localhost identified by ...

  4. mysql数据库创建database(实例),和用户,并授权

    前言:mysql创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...

  5. 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)

     mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...

  6. MySql数据库基础操作——数据库、用户的创建,表的制作、修改等

    MySql 是一款使用便捷.轻量级的数据库.因为他体积小.速度快.安装使用简单.开源等优点,目前是使用最广泛的数据库.目前位于Oracle甲骨文公司旗下.那今天我们就来介绍一下数据库的基本操作.具体介 ...

  7. mysql创建新用户及新用户不能本地登陆的问题

    最近在搭建hadoop集群,主节点上面安装的MySQL数据库,对着方面不熟悉,为hive.Ooize等服务统一使用的root账号和密码,为了安全一些库对于某些用户是不可见的,所以需要针对不同的服务设置 ...

  8. MySQL下创建数据库以及授权用户

    一.新建数据库 1.首先登录MySQL:(输入 mysql -u root -p 命令,然后输入密码按回车即可) 2.在mysql> 下输入如下命令,回车,即可创建数据库 (test为数据库名) ...

  9. MySQL添加新用户、为用户创建数据库、为新用户分配权限

    登录MySQL [root@VM_0_2_33_centos /]#mysql -u root -p 添加新用户 允许本地 IP 访问 localhost, 127.0.0.1 mysql>'; ...

随机推荐

  1. Unity3D 使用C#指针unsafe

    Unsafe code requires the `unsafe' command line option to be specified 在Unity开发中,如果涉及到指针的使用,需要自己定义预处理 ...

  2. crontab 移动日志-超越昨天的自己系列(12)

    linux上定时执行某些脚本是管理服务器的时候比较常用的场景,比如定时检查进程是否存在,定时启动或关闭进程,定时检查日志删除日志等. 当我打开google百度crontab时长篇大论的一大堆,详细解释 ...

  3. SUSE Linux下新建Weblogic 10.3非admin服务

    Linux内核版本信息查询命令 cat /proc/version 显示内容为: Linux version 2.6.16.60-0.85.1-smp(geeko@buildhost) (gcc ve ...

  4. android之ViewPager

    在android中ViewPager是非常常用的控件.它在android.support.v4.view.ViewPager下.你们自己可以进http://developer.android.com/ ...

  5. Fragment +ViewPager

    public class MainActivity extends FragmentActivity { private ViewPager vp; @Override    protected vo ...

  6. table中td的空格

    1.css的方式去掉空格 .table{ border-collapse:collapse; border-spacing:0px; }

  7. DataItem,gridview,repeater数据控件数据绑定

    Container.DataItem几种方式. 在绑定数据时经常会用到这个句程序:<%# DataBinder.Eval(Container.DataItem,"xxxx") ...

  8. Apache Shiro简介

    作者:var dump链接:https://zhuanlan.zhihu.com/p/23300328最近要做一个基于Java C/S架构的项目,主要涉及权限管理这方面的东西.了解到Apache Sh ...

  9. 正则匹配<{$vcode}>变量

    $title="<{t}>您的验证码是:<{/t}><{$vcode}>,<{t}>请在注册页输入验证码并完成注册:验证码<{$vcod ...

  10. 再次理解javascript中的事件

    一.事件流的概念 + 事件流描述的是从页面中接收事件的顺序. 二.事件捕获和事件冒泡 +    事件冒泡接收事件的顺序: