MySQL权限管理简介

分类:编程技术 时间:2024-02-20 15:35 浏览:0 评论:0
0
本文主要讲解《MySQL权限管理简介》。有兴趣的朋友不妨看一下。文章介绍的方法简单、快捷、实用。让小编带你学习《MySQL权限管理入门》!

1. MySQL权限简介

简单理解mysql权限就是说MySQL允许你做自己力所能及的事情,不能越界。例如,如果只允许执行选择操作,则不能执行更新操作。只允许从某台机器连接mysql,则不能从该机器以外的其他机器连接mysql。

那么Mysql权限是如何实现的呢?这是关于mysql的两阶段验证,下面详细介绍: 第一阶段:服务器会先检查你是否允许连接。因为创建u时会添加主机限制ser,可以限制位置、某个IP、某个IP范围、任意地点等,只允许你从配置的指定地点登录。第2阶段:如果可以连接,Mysql会检查你发出的每一个请求,看你是否有足够的权限来执行它。例如,如果你想更新某个表或查询某个表,Mysql会检查你对哪个表或列有权限。再比如,如果你想运行一个存储过程,Mysql会检查你是否有该存储过程的执行权限等。

MYSQL有哪些权限?从官网复制一个表格看一下:

< td>

数据库或表

< tr>< td valign="top" width="177 ">

授予权限选项

< td valign="top">

表格

< tr>< tr>

权限

权限级别

权限描述

CREATE

数据库、表或索引

p>

创建数据库、表或索引权限

DROP

删除数据库或表权限

授予选项

数据库、表或保存的程序

参考

数据库或表

更改

表格

更改表格,例如添加字段和索引等等

删除

表格

删除数据权限

INDEX

表格< /p>

索引权限

插入

表格

插入权限s

选择

表格

查询权限

更新

更新权限

创建视图

视图

创建查看权限

显示视图

查看

查看视图权限

更改例程

存储过程

更改存储过程权限

创建例程

存储过程

创建存储过程权限

执行

< p >存储过程

执行存储过程权限

文件

服务器主机上的文件访问

文件访问权限

创建临时表

服务器管理

创建临时表权限

锁定表

服务器管理

锁定表权限

< /td>

创建用户

服务器管理

创建用户权限

进程

服务器管理

查看进程权限

重新加载

服务器管理

执行flush-hosts、flush-logs、flush-privileges、flush-status、flush-tables、flush-threads、refresh、reload等c命令权限

复制客户端

服务器管理

复制权限

复制从属

< /td>

服务器管理

复制权限

显示数据库

服务器管理

查看数据库权限

SHUTDOWN

服务器管理

关闭数据库权限

超级

服务器管理

执行kill线程权限

MYSQL权限是如何分配的,是针对表可以设置哪些权限,针对列可以设置哪些权限,等等。这可以从官方文档中的表格来解释ion:

< td width="413">

'执行'、'更改例程'、'授予'

权限分配

可能设置权限

表权限

'选择'、'插入'、'更新'、'删除'、'创建'、'删除'、'授予'、'引用'、'索引'、'更改'

列权限

'选择', '插入', '更新', '引用'

处理权限

2. MySQL权限体验原则: p>

权限控制主要是出于安全考虑,所以需要遵循几个经验原则:

1. 只授予满足条件的最小权限满足防止用户做坏事的需求。例如,如果用户只需要查询,那么只给予选择权限。做不授予用户更新、插入或删除权限。

2、创建用户时,限制用户的登录主机,通常为指定的IP或内网IP段。

3、初始化数据库时删除无密码的用户。安装数据库时,会自动创建一些用户,这些用户默认没有密码。

  4. 设置符合每个用户密码复杂度的密码。

5、定期清理不必要的用户。回收权限或删除用户。

3. MySQL权限实战:

1、GRANT命令使用说明:

我们先看一个例子,创建一个允许超级用户jack本地登录并授予其他用户权限。密码是:jack。

mysql> 将 *.* 上的所有权限授予 jack@'localhost',该权限由“jack”标识,并带有授予选项;查询正常,0 行受影响(0.01 秒)

GRANT 命令说明:
ALL PRIVILEGES表示所有权限。您还可以使用选择、更新和其他权限。

ON 用于指定权限目标的库和表。

*.*前面的*用于指定数据库名,后面的*用于指定表名。

TO 表示授予用户权限。

Jack@'localhost'表示jack用户,@后面是受限制的主机,可以是IP、IP段、域名,%、%表示任何地方。注意:这里的某些版本不包括本地。以前,我设置了一个用户允许从任何地方登录,但无法在本地登录。这个和版本有关系。如果遇到此问题,请添加 localhost 用户。就是这样。

  IDENTIFIED BY 指定用户的登录密码。

WITH GRANT OPTION 该选项表示用户可以将自己的权限授权给其他人。注意:往往人们在创建操作用户时没有指定WITH GRANT OPTION,导致用户无法使用能够使用GRANT命令创建用户或授权其他用户。

注意:可以使用GRANT给用户重复添加权限,权限是叠加的。例如,如果先给用户添加select权限,然后给用户添加insert权限,那么该用户就同时拥有select和insert权限。权限。

2.刷新权限

使用该命令可以使权限生效,特别是当你更新或删除权限表user、db、host等时。以前我遇到过使用grant后权限没有更新的情况。只要权限发生改变,就使用FLUSH PRIVILEGES命令刷新权限。

mysql>flushing特权;查询OK,0行受影响(0.01秒)

3.查看权限

查看当前用户权限:mysql>显示授予; +---------------------------------------------------- -------- --------------------+ |为 root@localhost 提供资助 | +------------- -------------------------------------- ------------ ------+ |将 *.* 上的所有权限授予“root”@“localhost”WITHGRANT OPTION | |使用授予选项将“@”上的代理授予“root”@“localhost”| +-------------------------- -------------------------- ---------------------------+ 2 rows in set ( 0.00 sec) 查看用户的权限: mysql> show grants for 'jack '@'%'; +-------------------------- -------------------------- --------------------------- ----------------------- -----------+ |为 jack@% 提供资助 | +---------------- --------------------------------- ----------------------------------------------------------------- -+ |将 *.* 的使用权限授予 'jack'@'% ' 由密码 '*9BCDC990E611B8D852EFAF1E3919AB6AC8C8A9F0' 识别 | +---------------------------------------------------- --------- ---------------------------------------------------- --------- --+ 集合中的 1 行(0.00 秒)

4. 撤销权限

mysql> 撤销对 *.* from 'jack'@' 的删除localhost';查询正常,0 行受影响(0.01 秒)

5.删除用户

mysql> select host,user,password from user; +------ ----+------+-------------------------------------------- ---------- -----+ |主持人|用户 |密码 | +------------+------+----------------- ------------- -------------+ |本地主机 |根 | | | RHEL5.4 |根 | | | 127.0.0.1 |根 | | | ::1 |根 | | |本地主机 | | | | RHEL5.4 | | | |本地主机 |杰克| *9BCDC990E611B8D852EFAF1E3919AB6AC8C8A9F0 | ----------------------------------------------------+ 集合中的 7 行(0.00 秒)mysql > drop user 'jack'@'localhost';查询正常,0 行受影响(0.01 秒)

6. 重命名帐户

mysql> rename用户 'jack'@'%' 改为 'jim'@'%';查询正常,0 行受影响(0.00 秒)

7. 更改密码

< pre> 1. 使用设置密码命令 mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');Query OK, 0 rows受影响 (0.00 sec) 2. 使用 mysqladmin [root@rhel5 ~]# mysqladmin -uroot -p123456 密码 1234abcd 注:格式:mysqladmin -u 用户名 -p 旧密码d 密码 新密码 3、使用 update 直接编辑用户表 mysql> 使用 mysql 读取表信息补全表名和列名 你可以关闭此功能以获得更快的启动速度 -A 数据库已更改 mysql> update user set PASSWORD = PASSWORD( '1234abcd') where user = 'root';查询正常,1 行受影响(0.01 秒)行匹配:1 已更改:1 警告:0 mysql> 刷新权限;查询正常,0 行受影响(0.00 秒) 4. 当root 密码丢失: [root@rhel5 ~]# mysqld_safe --skip-grant- & [1] 15953 [root@rhel5 ~]# 130911 09:35:33 mysqld_safe 记录到 '/mysql/mysql5.5/data/ rhel5.4.err'。 130911 09:35:33 mysqld_safe 使用 /mysql/mysql5.5/data 中的表数据库启动 mysqld 守护进程 [root@rhel5 ~]# mysql -u root 欢迎来到 MySQL 监视器。命令以 ; 结尾或 \g.您的 MySQL 连接 ID 为 2 服务器版本:5.5.22 源分发版权所有 (c) 2000、2011、Oracle 和/或其附属公司。保留所有权利。Oracle 是 Oracle Cor 的注册商标部分和/或其附属公司。其他名称可能是其各自所有者的商标。输入“帮助;”或“\h”寻求帮助。输入 '\c' 清除当前输入语句。mysql> \s -------------- mysql Ver 14.14 Distrib 5.5.22, for Linux (i686) using EditLinewrapperConnectionid: 2 当前数据库: 当前用户: root@SSL: 未使用 当前寻呼机: stdoutUsing outfile: '' 使用分隔符: ;服务器版本: 5.5.22 源分发协议版本: 10 连接: 通过 UNIX 套接字的本地主机服务器字符集: utf8Db 字符集: utf8客户端字符集: utf8Conn 。字符集:utf8UNIX 套接字:/tmp/mysql.sockUptime:36 秒线程:1 问题:5 慢速查询:0 打开:23 刷新表:1 打开表:18 每秒查询平均:0.138 ---------- ---- mysql> 使用 mysql 读取表信息来完成表名和列名 您可以使用 -A Database Changed 关闭此功能以获得更快的启动 mysql> update user set password = PASSWORD('123456') where user = 'root ';询问OK,1 行受影响(0.00 秒)行匹配:1 更改:1 警告:0 mysql> 刷新权限;查询 OK,0 行受影响(0.00 秒)

此时,相信大家对《MySQL权限管理入门》有了更深入的了解,不妨实践一下吧!这是网站。更多相关内容,您可以进入相关渠道进行查询。关注我们并继续学习!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > MySQL权限管理简介

用户评论