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用户及赋予用户权限的更多相关文章

  1. mysql创建本地用户及赋予数据库权限的方法示例

    大家在安装 mysql 时通常会生成一个超级用户 root,很多人之后就一直沿用这一个用户,虽然这会很方便,但超级用户权限太大,在所有地方使用它通常是一个安全隐患. 这一点跟操作系统的用户管理也是类似 ...

  2. centos添加用户并赋予管理员权限

    用centos时,root用户一般都是超级管理员使用的,一般不轻易给别人,但是有时候同事安装软件时需要root账号,又不得不给,只能重新建一个用户,并赋予管理员权限.下面介绍创建用户并赋予管理员权限的 ...

  3. mysql创建用户、赋予指定权限命令

    1.远程登录mysql mysql -h ip -u root -p 密码 2.创建用户 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码 ...

  4. mysql 新建用户并赋予远程访问权限

    不多说直接上代码 [root@demo /]# mysql -u root -p #登录服务器数据库 Enter password:123xxx #1.创建一个新用户 testuser 密码为 tes ...

  5. Linux创建用户并赋予Root权限

    添加普通用户 [root@server ~]# useradd test //添加一个名为test的用户[root@server ~]# passwd test //修改密码Changing pass ...

  6. linux 添加用户并赋予root权限

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码Changing pass ...

  7. linux下添加用户并赋予root权限

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码Changing pass ...

  8. linux下加入用户并赋予root权限

    1.加入用户.首先用adduser命令加入一个普通用户,命令例如以下: #adduser tommy //加入一个名为tommy的用户 #passwd tommy   //改动password Cha ...

  9. Linux添加用户并赋予root权限

    新增用户 创建一个名为qiang,其家目录位于/usr/qiang的用户 adduser -d /usr/qiang -m qiang 或直接这样,则用户的家目录会默认为/home/目录 adduse ...

随机推荐

  1. [刷题] PTA 02-线性结构3 Reversing Linked List

    链表逆序 1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 using namesp ...

  2. ssh无法启动 (code=exited, status=255)

    ssh无法启动 (code=exited, status=255) 2019年1月30日ssh 服务器运行了一些脚本后,突然发现无法ssh了. root@X61T:/home/liang# servi ...

  3. 用于监视Linux上的内存使用情况的Bash脚本

    用于监视Linux上的内存使用情况的Bash脚本 2019-06-17 11:32:45作者:戴进稿源:云网牛站 在本文中,我们添加了两个shell脚本来监视Linux操作系统上的内存利用率,即用于监 ...

  4. Fedora镜像下载地址

    Fedora镜像下载地址 Fedora 7核心源码包在: http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/7/F ...

  5. 在Windows上使用 Python 安装+ win10启用长路径

    https://docs.python.org/zh-cn/3/using/windows.html 成功20200131 https://docs.python.org/zh-cn/3/using/ ...

  6. win10家庭版升级 到win10企业版

    成功升级3小时  20200124 拿到电脑 win10家庭版 不会用 找admin都找不到只能用企业版 升级win10家庭版 到win10企业版 在msdn下载win10企业版iso iso 文件管 ...

  7. 11.19 rpm:RPM包管理器

    rpm命令的全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用了这种形式的命令管理.安装.更新和卸载软件. 概括地说,rpm命令包含了五 ...

  8. Java基础之概述

    1. 什么是程序 程序是计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合 2. Java三大版本 Java SE 标准版 Java EE 企业版 Java ME 小型版 3. Java重要 ...

  9. Unity 2018.3.0f 版本用C#编程启动VS时出现"Visual Studio 2010 Shell 无效的许可证数据"的解决办法

    C#编程时,启动VS出现的问题如图: 网上有提到用更改注册表的方式,亲测效果未发生改变,在不确定修改后效果如何时,尽量先将原有的数据备份下来: 本文介绍楼主用另外一种方式解决的: 由于脚本系统默认启动 ...

  10. 策略模式干掉if-else,switch

    1.传统if -else 写法 String nodeModelStr = ""; if (nodeType == NodeType.START){ StartModel star ...