MySQL 存取控制包含2个阶段:
- 阶段1:服务器检查是否允许你连接。
- 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你对表有SELECT权限或对数据库有DROP权限。
参考 : 5.8. MySQL用户账户管理
1.权限查看
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->mysql> show grants for 'root'@'localhost' ;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.06 sec)
2.权限设置
5.8.2. 向MySQL增加新用户账户
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。
下面的例子创建3个账户,允许它们访问专用数据库。每个账户的用户名为custom,密码为obscure。
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON bankaccount.*
-> TO 'custom'@'localhost'
-> IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON expenses.*
-> TO 'custom'@'whitehouse.gov'
-> IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON customer.*
-> TO 'custom'@'server.domain'
-> IDENTIFIED BY 'obscure';
这3个账户可以用于:
· 第1个账户可以访问bankaccount数据库,但只能从本机访问。
· 第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。
· 第3个账户可以访问customer数据库,但只能从主机server.domain访问。
要想不用GRANT设置custom账户,使用INSERT语句直接修改 授权表:
5.8.3. 从MySQL删除用户账户
DROP USER user;
分享到:
相关推荐
8. 安全性与权限管理:MySQL提供了用户账户管理、权限分配和日志记录等功能,笔记会指导如何设置和管理这些安全措施。 9. 性能调优:这部分可能涉及查询优化、索引策略、内存配置、分区和复制等,以提高数据库的...
8. **权限管理**:学习如何创建用户、分配权限,以及如何通过GRANT和REVOKE命令来管理数据库访问控制。 9. **日志管理**:了解错误日志、查询日志、二进制日志的用途,以及如何利用这些日志进行问题排查和审计。 ...
MySQL的用户管理和权限控制是保障系统安全的关键。GRANT和REVOKE语句用于赋予和撤销用户的数据库访问权限。了解如何设置用户权限,以及使用SSL加密连接可以增强数据库的安全性。 9. **备份与恢复**: 数据库备份...
例如,使用create database创建数据库,使用create table创建表,使用select、insert、update、delete等进行数据操作,使用grant和revoke实现权限控制。 数据类型在MySQL数据库设计中扮演重要角色,它决定了数据...
这份“超经典MySQL DBA培训笔记”显然涵盖了MySQL数据库管理的各个方面,是DBA或者对MySQL有兴趣的学习者的重要参考资料。接下来,我将根据这个主题,详细解释MySQL DBA需要掌握的关键知识点。 1. **MySQL基础知识*...
这份“超经典mysql dba学习笔记”包含了丰富的MySQL运维知识,对于想要深入理解和掌握MySQL DBA技能的人来说是一份宝贵的资料。 一、MySQL基础知识 在学习MySQL DBA之前,首先需要了解MySQL的基本概念,包括数据库...
1.4.2 mysql 的备份的脚本给 700 的权限,并且属主和属组为 root..........................21 1.4 关于 mysql 的启动与关闭.......................................................................................
笔记会讲解如何创建和管理用户,设置合适的权限,以及如何启用和配置MySQL的审计功能。 十、云环境下的MySQL管理 随着云计算的发展,DBA也需要了解如何在AWS RDS、Google Cloud SQL或阿里云RDS等云平台上管理MySQL...
本学习笔记聚焦于MySQL这一广泛使用的开源关系型数据库管理系统,为有志成为DBA或者希望提升MySQL技能的读者提供了丰富的知识资源。以下是笔记中可能涵盖的主要知识点: 1. **MySQL简介**:MySQL的历史、特性、版本...
本教程笔记涵盖了 MySQL 的一些高级主题,包括用户权限管理、日志管理、主从复制、分区技术和性能优化等方面。这些内容对于数据库管理员和开发者来说都是非常重要的知识。掌握这些技能有助于提高系统的稳定性和性能...
MySQL 使用笔记涵盖了许多基础到进阶的操作,是学习和日常工作中不可或缺的一部分。下面将详细解释这些知识点。 **一、MySQL 基本操作** 1. **启动 MySQL 服务**: 使用命令 `net start mysql` 来启动 MySQL 服务。 ...
MySQL DBA运维笔记详细介绍了数据库相关的基础知识以及MySQL数据库的管理和操作技巧,以下是详细的知识点梳理: 1. 数据库的种类: 1.1 关系型数据库介绍:关系型数据库是以行和列的形式存储数据,支持复杂的查询...
MySQL DBA架构师学习笔记涉及了MySQL数据库的部署、配置、监控和优化等多方面的知识点。以下是对文件内容中提及知识点的详细说明: 1. MySQL部署规划:在进行MySQL数据库部署时,需要进行前期规划,确定软件包、...
了解SQL语言的基本语法,如DML(增删改查)、DDL(定义数据结构)、DCL(权限控制)和TCL(事务控制)。 2. **安装与配置**:了解在不同操作系统上安装MySQL的步骤,如Linux、Windows和macOS。学习配置文件my.cnf的...
"说明文档.txt" 文件可能包含笔记的详细内容,比如安装MySQL、配置数据库、创建数据库和表、用户权限管理、备份与恢复等步骤。这些是MySQL日常操作的核心部分。了解如何创建数据库和表结构,定义字段类型和约束,...
MySQL提供用户权限管理,通过GRANT和REVOKE命令控制用户对数据库的访问权限。此外,还应关注SQL注入攻击,通过预编译语句、参数化查询等方式防止此类安全问题。 十二、高级特性 MySQL还包括分区(Partitioning)、...
4. **事务与并发控制**:MySQL支持ACID(原子性、一致性、隔离性和持久性)特性,笔记会涉及事务的四大操作(BEGIN、COMMIT、ROLLBACK、SAVEPOINT)和并发控制机制,如锁定和MVCC(多版本并发控制)。 5. **存储...
本笔记将深入探讨MySQL的基础知识,帮助你全面掌握这个强大的数据存储和管理工具。 首先,我们要理解数据库的基本概念。数据库是一个组织和存储数据的系统,允许用户通过结构化查询语言(SQL)进行数据的检索、更新...
5. **视图**:创建和使用视图,理解视图在数据抽象和权限控制中的作用。 6. **存储过程与函数**:如何定义、调用存储过程和自定义函数,提升代码复用性和执行效率。 7. **事务处理**:ACID(原子性、一致性、隔离性...
"狂神说Java"的MySQL笔记可能深入探讨了如何在Java编程环境中与MySQL进行交互,这对于我们理解数据库管理和开发至关重要。以下是对这个主题的详细阐述: 1. **MySQL基础**: - 数据库概念:MySQL是一个用于存储和...