12、创建mysql用户及赋予用户权限
1、通过help命令查看grant的用法:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
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;
2、运维人员标胶常用的创建用户的方法:
使用grant命令在创建用户的同时进行权限的授权,具体的例子如下;
grant all privileges on db1.* to 'jeffrey'@'localhost' identified by '123456';
这一条命令等于"1、"中标红的两条命令;
3、grant命令权限:
(1)grant命令语法:
grant all privileges on dbname.* to 'username'@'locahost' identified by 'password'
grant all privileges on dbname.* to username@localhost identified by password
授权命令 对应权限 目标 库和表 用户名和客户端主机 用户密码
注意:all privleges权限不包括创建用户的权限;
(2)用法:
1)创建用户并赋予权限的方法:
mysql> grant all privileges on lc.* to 'lc'@'localhost' identified by '123456';
mysql> select user,host from mysql.user;
+-----------+------------+
| user | host |
+-----------+------------+
| root | 127.0.0.1 |
| wordpress | 172.16.1.% |
| root | ::1 |
| root | db01 |
| lc | localhost |
| root | localhost |
+-----------+------------+
6 rows in set (0.00 sec)
mysql> show grants for 'lc'@'localhost';
+-----------------------------------------------------------------------------------------------------------+
| Grants for lc@localhost |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'lc'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT ALL PRIVILEGES ON `lc`.* TO 'lc'@'localhost' |
+-----------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
2)创建用户和权限命令配合的方法:
mysql> create user 'lc3'@'localhost' identified by '123456';
#创建的普通用户权限是USAGE,就是没有任何的权限的;
mysql> grant all privileges on lc.* to 'lc3'@'localhost';
mysql> flush privileges;
3)授权局域网内主机远程连接数据库:
A、网段:
10.0.0.%
10.0.0.0/255.255.255.0
C、特定ip地址:
10.0.0.1
D、域名:
www.web01.com
C、linux命令行的远程连接:
mysql -uroot -p123456 -P3306 -h localhost
D、通过php服务器连接mysql服务器的代码:
<?php
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('10.0.0.7','lc','123456') or mysql_error();
if($link_id){
echo "mysql successful by lc!";
}else{
echo "mysql_error()";
}
?>
4、mysql ALL PRIVILEGES权限有哪些:
(1)收回权限:
revoke INSERT ON 'lc'.* from 'lc3'@'localhost';
flush privileges;
(2)查看all privileges的所有权限:
[root@db01 ~]# mysql -ulc3 -p123456 -e "show grants for 'lc3'@'localhost';" | tail -1 | tr "," "\n"
GRANT SELECT #查询
UPDATE #更新
INSERT #插入
DELETE #删除
CREATE #创建库和表
DROP #删除库和表
REFERENCES
INDEX #索引
ALTER #修改
CREATE TEMPORARY TABLES #创建临时表
LOCK TABLES #锁表
EXECUTE #执行
CREATE VIEW #创建视图
SHOW VIEW #显示视图
CREATE ROUTINE #创建存储过程
ALTER ROUTINE #显示存储过程
EVENT #事件
TRIGGER ON `lc`.* TO 'lc3'@'localhost' #触发器
根据以上的权限在给用户赋权的时候可以用逗号隔开赋权;
mysql> select * from mysql.user; #通过查看mysql库的user表来查看用户的权限
N代表没有权限,Y代表有该权限;
5、企业生产环境中如何授权用户权限:
在授权时可以授权用户最小的满足业务需求的权限,而不是一味的授权"ALL PRIVILEGES"。
(1)博客,cms等产品的数据库授权:
对于web连接用户授权尽量采用最小化的原则,很多开源软件都是web界面安装,因此,在
安装期间除了select,insert,update,delete 4个权限外,还需要create,drop等比较危险的权限;
grant select,insert,update,delete,create,drop on blog.* to 'blog'@'172.16.1.%' identified by '123456';
(2)生成数据库表后,要回收create,drop权限;
revoke crate,drop on blog.* from 'blog'@'localhost';
(3)生产环境针对主库(写为主,读为辅)用户的授权:
1)普通环境:
本机:lnmp,lamp环境数据库授权;
grant all privileges on blog.* to 'blog'@'172.16.1.%' identified by '123456';
应用服务器和数据库服务器不在一个主机上的授权;
grant all privileges on blog.* to 'blog'@'172.16.1.%' identified by '123456';
严格的授权:重视安全,忽略方便;
grant select,insert,update,delete on blog.* to 'blog'@'172.16.1.%' identified by '123456';
(4)生产环境从库(只读)用户的授权;
grant select on blog.* to 'blog'@'172.16.1.%' identified by '123456';
提示:这里表示给172.16.1.0/24的用户blog管理blog数据库的所有表(*表示所有表),只读
权限(select),密码为'123456';
12、创建mysql用户及赋予用户权限的更多相关文章
- mysql创建本地用户及赋予数据库权限的方法示例
大家在安装 mysql 时通常会生成一个超级用户 root,很多人之后就一直沿用这一个用户,虽然这会很方便,但超级用户权限太大,在所有地方使用它通常是一个安全隐患. 这一点跟操作系统的用户管理也是类似 ...
- centos添加用户并赋予管理员权限
用centos时,root用户一般都是超级管理员使用的,一般不轻易给别人,但是有时候同事安装软件时需要root账号,又不得不给,只能重新建一个用户,并赋予管理员权限.下面介绍创建用户并赋予管理员权限的 ...
- mysql创建用户、赋予指定权限命令
1.远程登录mysql mysql -h ip -u root -p 密码 2.创建用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码 ...
- mysql 新建用户并赋予远程访问权限
不多说直接上代码 [root@demo /]# mysql -u root -p #登录服务器数据库 Enter password:123xxx #1.创建一个新用户 testuser 密码为 tes ...
- Linux创建用户并赋予Root权限
添加普通用户 [root@server ~]# useradd test //添加一个名为test的用户[root@server ~]# passwd test //修改密码Changing pass ...
- linux 添加用户并赋予root权限
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing pass ...
- linux下添加用户并赋予root权限
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing pass ...
- linux下加入用户并赋予root权限
1.加入用户.首先用adduser命令加入一个普通用户,命令例如以下: #adduser tommy //加入一个名为tommy的用户 #passwd tommy //改动password Cha ...
- Linux添加用户并赋予root权限
新增用户 创建一个名为qiang,其家目录位于/usr/qiang的用户 adduser -d /usr/qiang -m qiang 或直接这样,则用户的家目录会默认为/home/目录 adduse ...
随机推荐
- centos7 搭建 nginx web服务 反代理
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. ...
- 【玩转PDF】贼稳,产品要做一个三方合同签署,我方了!
一.前言 事情是这个样子的,小农的公司,之前有个功能需要签署来进行一系列的操作,于是我们引入了一个三方平台的签署--上上签,但是有一个比较尴尬的点就是,它不支持合同在浏览器上和附件一起预览的,我们想要 ...
- Kubernetes-3.3:ETCD集群搭建及使用(https认证+数据备份恢复)
etcd集群搭建 环境介绍 基于CentOS Linux release 7.9.2009 (Core) ip hostname role 172.17.0.4 cd782d0a790b etcd1 ...
- 离散傅里叶变换的衍生,负频率、fftshift、实信号、共轭对称
封面是福州的福道,从高处往下看福道上的人在转圈圈.从傅里叶变换后的频域角度来看,我们的生活也是一直在转圈圈,转圈圈也是好事,说明生活有规律,而我们应该思考的是,如何更有效率地转圈圈--哦别误会,我真不 ...
- HTTP状态 500 - 内部服务器错误之Could not open ServletContext resource [/db.properties]或者 [/mybatis.xml]
报错原因是因为找不到db.properties或者mybatis.xml,但是我明明写了有.找了一下,才发现spring-dao.xml里面这两个配置文件地址有问题 Maven项目,applicati ...
- [转]CAP和BASE理论
1. CAP理论 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想.2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证 ...
- Scrapy的Request和Response
Scrapy的Request和Response 本文链接:https://blog.csdn.net/kissazhu/article/details/80865773 上节课我们学习了中间件,知 ...
- GO语言面向对象06---面向对象练习01
package main import "fmt" /* 定义动物接口:死.活着 定义动物实现类:鸟.鱼.野兽(跑.捕食) 继承野兽:实现老虎,实现人 业务场景:工作日所有动物都活 ...
- Go benchmark 详解
前言 基准测试(benchmark)是 go testing 库提供的,用来度量程序性能,算法优劣的利器. 在日常生活中,我们使用速度 m/s(单位时间内物体移动的距离)大小来衡量一辆跑车的性能,同理 ...
- GPU 硬件虚拟化Hardware Virtualization
GPU 硬件虚拟化Hardware Virtualization 1. Principles 一个物理GPU可以虚拟化为多个vGPUs.VMs可以绑定到vGPUs以直接访问一些物理GPU资源. 2. ...