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. Java和C/C++进行DES/AES密文传输(借鉴)

    Java和C/C++进行DES/AES密文传输 声明:对于新手来说很难解决的一个问题,终于在非常煎熬之后找到这篇文章,所以借鉴过来.原文地址http://blog.sina.com.cn/s/blog ...

  2. pycharm安装

    license server http://idea.lanyus.com

  3. http和htpps

    http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议.  HTTPS   基于安全套接字层的超文本传输协议 或者是 HTTP over SSL **HTTP 和 HTTPS相同 ...

  4. iOS 常用设计模式和机制之KVO

    KVO http://blog.kyleduo.com/2014/10/20/ios_learning-kvo/ 定义: KVO:Key-Value Observing,是Foundation框架提供 ...

  5. Linux简介

    一.Linux发展史 Linux出现之前,还有一个叫Minix的家伙(Andrew S. Tanenbaum教授为了教学买了Unix系统,参考其代码,但没有任何的代码抄袭,自己写了Minix系统,并开 ...

  6. Python asyncio库的学习和使用

    因为要找工作,把之前自己搞的爬虫整理一下,没有项目经验真蛋疼,只能做这种水的不行的东西...T  T,希望找工作能有好结果. 之前爬虫使用的是requests+多线程/多进程,后来随着前几天的深入了解 ...

  7. JS(去掉前后空格或去掉所有空格)的用法 推荐使用jquery 方法

        说明:     如果使用jQuery直接使用$.trim(str)方法即可,str表示要去掉前后所有空格的字符串. 推荐 1.  去掉字符串前后所有空格: 代码如下: function Tri ...

  8. libvirt

    http://libvirt.org/index.html libvirt supports: The KVM/QEMU Linux hypervisor The Xen hypervisor on ...

  9. 怎样用JS获取ASP.NET服务器控件的客户端ID

    虽然简单,不过曾经困扰多时,还是记录一下吧. 来源:http://mou518.blog.163.com/blog/static/1756052222010111434428828/ 因为经常服务器控 ...

  10. python string module

    String模块中的常量 >>> import string >>> string.digits ' >>> string.letters 'ab ...