热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统下MySQL用户权限管理详解——第四阶段运维指南

在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。

Linux运维 第四阶段 (四)MySQL用户和权限管理

1、相关概念:

》mysql用户:

类似VSFTPD虚拟用户;

密码,自己独有的加密机制,PASSWORD函数;

用户名@主机;

用户名16字符以内,主机(主机名、IP、网络地址、通配符(%,_);

--skip-name-resolve(跳过名称解析,可提高用户连接速度)

账号是用来认证的;

>RENAME USER  ‘old_name’@’host’  TO  ‘new_name’@’host;  (重命名用户)

》权限,授权后才能访问表(数据);

mysql自身库中的表:user,db,host,tables_priv,columns_priv,procs_priv:

user:user account,global privileges and other non-privileges column; 全局级别(SUPER,REPLICATION SLAVE,SHUTDOWN)

db:database-levelprivileges 库级权限

host:obsolete  已废弃

tables-priv:table-level privileges  表级权限(DELETE,ALTER,TRIGGER,SELECT,INSERT,UPDATE)

columns_priv:column-level privileges  列级别权限(SELECT,INSERT,UPDATE)

procs_priv:stored procedure andfunction privileges  存储过程和存储函数权限

proxies_priv:proxy-user privileges  代理用户权限

mysql在启动时会读取这六张表,并在内存中生成授权表,且每执行一个SQL语句都要检查是否有权限读取或写入;

2、>SELECT  * FROM  db\G

>CREATE TEMPORARY  TABLE  tb_name; (临时表——内存表);

USAGE (仅用作连接mysql-server和一些简单命令的使用)

触发器trigger:主动数据库(在执行某些操作时,触发已定义好的语句,如日志记录)

>HELP CREATE  USER  (创建用户)

>CREATE USER  ‘username’@’host’  [IDENTIFIED BY  ‘new_pw’];

>FLUSH PRIVILEGES;

>HELP GRANT  (给用户授权)

>GRANT  privileges1,privileges2  ON  [object_type]  db_name.tb_name  TO ‘username’@’host’ [IDENTIFIED BY ‘new_pw’]  [REQUIRE NONE|ssl_option]  [WITH with_option];

注:db_name.tb_name(priv_level):

*

*.*

db_name.*

db_name.tb_name

tb_name

db_name.routine_name

with_option:

GRANT_OPTION  用户可将自己已有权限授权给其它用户,非常危险,不建议使用

|MAX_QUERIES_PER_HOUR count  每小时最多查询数

|MAX_UPDATES_PER_HOUR count  第小时最多更新多少条

|MAX_CONNECTIONS_PER_HOUR count  每小时可最多连接失败多少次

|MAX_USER_CONNECTIONS count  同一个用户账号共连进多少次

例:>GRANT  EXECUTE  ON FUNCTION  db.abc  TO [email protected]’%’;  (当无法判断tb_name是什么对象时使用此项object_type,此例明确说明abc是函数,tb_name不一定都是表,也会是存储过程PROCEDURE和存储函数FUNCTION)

>GRANT UPDATE  ON  jiaowu.tutors TO  ‘username’@’%’  REQUIRE SSL;  (连接时必须要以SSL建立安全连接,还可以以X509方式)

>GRANT UPDATE(Age) ON jiaowu,stu TO ‘username’@’host’;  (仅授权某字段)

>GRANT SUPER ON *.* TO ‘username’@’host’;  (SUPER与WITH GRANTOPTION两项要慎重授权)

>SHOW GRANTS FOR ‘username’@’host’;  (查看某用户权限,字段授权与库、表授权不在同一行)

>HELP REVOKE

>REVOKE priv1,priv2  ON  db_name.tb_name  FROM  ‘user’@’host’;

3、重新找回管理员密码:

#service mysqld  stop

#vim /etc/rc.d/init.d/mysqld

$bindir/mysqld_safe  --skip-grant-tables  --skip-networking   --datadir="$datadir"--pid-file="$mysqld_pid……(添加--skip-grant-tables跳过授权表和--skip-networking禁止连接网络)

#service mysqld  start

#mysql

>UPDATE mysql.user  SET  PASSWORD=PASSWORD(‘new_password’)  WHERE User=’root’;

(仅能通过手动更改user表中内容,不能用SET及mysqladmin更改密码,因为授权表已跳过)

#service mysqld  stop(停止服务将/etc/rc.d/init.d/mysqld改回原来状态,重启服务即可)。

本篇是学习《马哥网络视频》做的笔记。

本文出自 “Linux运维重难点学习笔记” 博客,谢绝转载!

原文:http://jowin.blog.51cto.com/10090021/1683615



推荐阅读
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
author-avatar
孤独秀风_328
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有