create和grant配合使用,对Mysql进行创建用户和对用户授权
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进行创建用户和对用户授权的更多相关文章
- 003:MySQL账号创建授权以及Workbench
目录 一. 权限管理 1."用户 + IP"的概念 2. 用户权限管理 3. 基本操作 4. 撤销权限 5.授权和创建用户 二. MySQL模拟角色 三. Workbench与Ut ...
- 【转】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 ...
- Mysql 数据库创建基本步骤
1.创建数据库 create database school; 2.使用数据库 Use school; 3.创建用户 create user jame@localhost identified by ...
- mysql数据库创建database(实例),和用户,并授权
前言:mysql创建用户的方法分成三种:INSERT USER表的方法.CREATE USER的方法.GRANT的方法. 一.账号名称的构成方式 账号的组成方式:用户名+主机(所以可以出现重复的用户名 ...
- 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...
- MySql数据库基础操作——数据库、用户的创建,表的制作、修改等
MySql 是一款使用便捷.轻量级的数据库.因为他体积小.速度快.安装使用简单.开源等优点,目前是使用最广泛的数据库.目前位于Oracle甲骨文公司旗下.那今天我们就来介绍一下数据库的基本操作.具体介 ...
- mysql创建新用户及新用户不能本地登陆的问题
最近在搭建hadoop集群,主节点上面安装的MySQL数据库,对着方面不熟悉,为hive.Ooize等服务统一使用的root账号和密码,为了安全一些库对于某些用户是不可见的,所以需要针对不同的服务设置 ...
- MySQL下创建数据库以及授权用户
一.新建数据库 1.首先登录MySQL:(输入 mysql -u root -p 命令,然后输入密码按回车即可) 2.在mysql> 下输入如下命令,回车,即可创建数据库 (test为数据库名) ...
- MySQL添加新用户、为用户创建数据库、为新用户分配权限
登录MySQL [root@VM_0_2_33_centos /]#mysql -u root -p 添加新用户 允许本地 IP 访问 localhost, 127.0.0.1 mysql>'; ...
随机推荐
- UVA 10173 (几何凸包)
判断矩形能包围点集的最小面积:凸包 #include <iostream> #include <cmath> #include <cstdio> #include ...
- .Net内存泄露原因及解决办法
.Net内存泄露原因及解决办法 1. 什么是.Net内存泄露 (1).NET 应用程序中的内存 您大概已经知道,.NET 应用程序中要使用多种类型的内存,包括:堆栈.非托管堆和托管堆.这里我们需 ...
- Mac下到Linux主机ssh免密码登录
最近忙得忘乎所以,写篇博客放松放松,RT,直接上命令好了 # Local ssh-keygen -t rsa scp ~/.ssh/id_rsa.pub username@server:~/.ssh/ ...
- Linux版网易云音乐播放音乐时无限显示“网络错误”的解决办法
安装 gstreamer0.10-plugins-good debian类系统: -plugins-good
- Python-Jenkins 查询job是否存在
def check_jobs_from_jenkins(job_names): if isinstance(job_names, str): job_names = [job_names] job_d ...
- (转)几种范数的解释 l0-Norm, l1-Norm, l2-Norm, … , l-infinity Norm
几种范数的解释 l0-Norm, l1-Norm, l2-Norm, - , l-infinity Norm from Rorasa's blog l0-Norm, l1-Norm, l2-Norm, ...
- HTTP Status 404 - /chp-adapter-web/ 问题解决
启动tomcat中是报404,后来发现是同事把web.xml删除了,加上后,正常访问!
- .NET微信通过授权获取用户的基本信息
一.填写授权回调页面的域名 二.引导用户到指定的授权页面 例如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID& ...
- LeetCode "Top K Frequent Elements"
A typical solution is heap based - "top K". Complexity is O(nlgk). typedef pair<int, un ...
- IntelliJ IDEA热加载自动更新(Update classes and resources )
IntelliJ IDEA默认文件是自动保存的,但是手头有个项目jsp文件改动后,在tomcat中不能立即响应变化.想要jsp文件改动后立刻看到变化,可以通过修改配置来实现. ...