`
zqjshiyingxiong
  • 浏览: 441510 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

MYSQL教程:MySQL用户帐号管理

    博客分类:
  • DB
阅读更多

MySQL grant 语法的详细解析

上面的解析已经很详细了,但是还有中情况,一个用户对应多个数据库的情况:

 

 

grant all on `数据库名%`.* to '用户名'@'IP'  identified by '密码'

 

mysql支持通配符 当把带引号的值是,需使用反勾号(‘`’)为数据库、表、列和子程序名称加引号。使用单引号(‘'’)为hostnames、usernames和 密码加引号 .在数据库名一项可以使用%来选择一类数据库,还可以使用“_”

 

 

MySQL用户帐号管理主要用grant(授权)和revoke(撤权)两个SQL指令来管理。这两个指令实质是通过操作user(连接权限和全局 权限)、db(数据库级权限)、tables_priv(数据表级权限)、columns_priv(数据列级权限)四个权限表来分配权限的。host权 限表不受这两个指令影响。下面将会详细介绍用户权限管理的内容。

本文由网页教学网(http://www.webjx.com )整理发布!转载请注明出处,谢谢!

  • GRANT语法说明:

    GRANT privileges (columns)          #privileges表示授予的权限,columns表示作用的列(可选) 
          ON what                       #设置权限级别,全局级、数据库级、数据表级和数据列级
          TO account                    #权限授予的用户,用"user_name"@"host_name"这种用户名、主机名格式
          IDENTIFIED BY 'password'      #设置用户帐号密码
          REQUIRE encryption requirements       #设置经由SSL连接帐号
          WITH grant or resource management options;   #设置帐号的管理和资源(连接服务器次数或查询次数等)选项
    

    示例:

    mysql>grant all on db.* to 'test'@'localhost' identified by 'test';
    上例运行后的效果是,test用户只能通过‘test’密码从本机访问db数据库
    
    mysql>grant all on db.* to 'test'@'%' identified by 'test';
    上例运行后的效果是,test用户可通过‘test’密码从任意计算机上访问db数据库。‘%’代表任意字符,‘_’代表一个任意字符。主机名部份还可以是IP地址。
    
    如果没有给定主机部份,则默认为任意主机,也就是'test'和'test'@'%'是等价的。
  • Table 4.1. 访问权限表

    权限 权限说明
    CREATE TEMPORARY TABLES 创建临时数据表
    EXECUTE 执行存储过程(暂不支持)
    FILE 操作系统文件
    GRANT OPTION 可把本帐号的权限授予其它用户
    LOCK TABLES 锁定指定数据表
    PROCESS 查看运行着的线程信息
    RELOAD 重新加载权限表或刷新日志及缓冲区
    REPLICATION CLIENT 可查询主/从服务器主机名
    REPLICATION SLAVE 运行一个镜像从服务器
    SHOW DATABASES 可运行SHOW DATABASES指令
    SHUTDOWN 关闭数据库服务器
    SUPER 可用kill终止线程以及进行超级用户操作
    ALTER 可修改表和索引的结构
    CREATE 创建数据库和数据表
    DELETE 删除数据表中的数据行
    DROP 删除数据表和数据行
    INDEX 建立或删除索引
    INSERT 插入数据行
    REFERENCES (暂时不支持)
    SELECT 查询数据行
    UPDATE 更新数据行
    ALL 所有权限,但不包括GRANT。
    USAGE 无权限权限
  • Table 4.2. 权限作用范围(由ON子句设置)

    权限限定符 作用范围
    ON *.* 全局级权限,作用于所有数据库
    ON * 全局级权限,若未指定默认数据库,其作用范围是所有数据库,否则,其作用范围是当前数据库
    ON db_name.* 数据库级权限,作用于指定数据库里的所有数据表
    ON db_name.tbl_name 数据表级权限,作用于数据表里的所有数据列
    ON tbl_name 数据表级权限,作用于默认数据库中指定的数据表里的所有数据列
  • USAGE权限的用法:修改与权限无关的帐户项,如:

    mysql>GRANT USAGE ON *.* TO account IDENTIFIED BY 'new_password';     #修改密码
    mysql>GRANT USAGE ON *.* TO account REQUIRE SSL;                      #启用SSL连接
    mysql>GRANT USAGE ON *.* TO account WITH MAX_CONNECTIONS_PER_HOUR 10; #设置资源 
    
  • 拥有WITH GRANT OPTION权限的用户可把自已所拥用的权限转授给其他用户,如:

    mysql>GRANT ALL ON db.* TO 'test'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    这样test用户就有权把该权限授予其他用户。
    
  • 限制资源使用,如:

    mysql>GRANT ALL ON db.* TO account IDENTIFIED BY 'password' WITH MAX_CONNECTIONS_PER_HOUR 10 MAX_QUERIES_PER_HOUR 200 MAX_UPDATES_PER_HOUR 50;
    允许account用户每小时最多连接20次服务器,每小时最多发出200条查询命令(其中更新命令最多为50条)
    

    默认都是零值,即没有限制。FLUSH USER_RESOURCES和FLUSH PRIVILEGES可对资源限制计数器清零。

  • REVOKE语法说明:

    mysql>REVOKE privileges (columns) ON what FROM account;
    

    示例:

    mysql>REVOKE SELECT ON db.* FROM 'test'@'localhost';
    删除test帐号从本机查询db数据库的权限
    

    REVOKE可删除权限,但不能删除帐号,即使帐号已没有任何权限。所以user数据表里还会有该帐号的记录,要彻底删除帐号,需用DELETE命令删除user数据表的记录,如:

    % mysql -u root -p
    mysql>use mysql
    mysql>DELETE FROM user where User='test' and Host='localhost';
    mysql fulsh privileges;
    

    REVOKE不能删除REQUIRE和资源占用的配置。他们是要用GRANT来删除的,如:

    GRANT USAGE ON *.* TO account REQUIRE NONE;      #删除account帐号的SSL连接选项
    GRANT USAGE ON *.* TO account WITH MAX_CONNECTIONS_PER_HOUR 0 MAX_QUERIES_PER_HOUR 0 M
分享到:
评论

相关推荐

    在线考试教学系统平台系统源码.rar

    1.部署好网站环境:php5.6+mysql ... 3.将“dkewl.sql”数据库文件导入MySQL数据库 ... 账户 密码 ...管理用户账号:admin 密码:123456 普通用户账号:ceshi 密码:123456 用admin登陆,就进入后台了。

    mysql软件及安装教程

    MySQL是一款广泛使用的开源...总结,本教程涵盖了MySQL 5.7的安装、基本特性和配套工具的使用,通过学习,你不仅可以掌握安装过程,还能了解到MySQL在数据存储和管理方面的优势,为进一步的数据库操作和开发奠定基础。

    MySQL管理密码用户授权实践

    管理MySQL数据库包括管理用户账户和相应的权限,确保数据的安全和有效访问。本文将详细讨论如何进行MySQL管理密码的恢复与设置,以及如何进行用户授权和撤销。 1. MySQL密码恢复及设置 MySQL管理密码的恢复和设置...

    MYSQL开发工具安装教程附带安装资源

    MySQL开发工具安装教程涉及的知识点主要包括以下几个方面: 1. 安装准备阶段: - 下载MySQL安装包:用户需要访问MySQL官方网站...安装好MySQL之后,用户便可以开始数据库管理、开发以及执行各种数据库相关的操作了。

    MySql示例1:创建账户表及测试数据.zip

    MySQL是世界上最流行的开源关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。在这个名为"MySql示例1:创建账户表及测试数据.zip"的压缩包中,我们很显然会发现一个关于如何在MySQL中创建账户表并填充...

    MySql教程--mySql教程.chm

    13. **权限与安全**:管理用户账户,设置访问权限,了解GRANT和REVOKE语句,以及如何保护数据库免受恶意攻击。 14. **性能优化**:学习分析查询性能,使用EXPLAIN关键字,调整查询语句和索引来提升速度。同时,了解...

    以普通权限运行MySQL的操作说明

    2. **验证运行用户**:再次通过任务管理器检查MySQL服务的运行账户,确保已改为“mysqluser”。 3. **测试数据库功能**:运行一些依赖于MySQL的Web应用程序,如Discuz、Phpwind等,以确保它们仍然可以正常工作。 ##...

    mysql安装教程 linux安装mysql Windows安装mysql_Mysql教程

    ### MySQL安装教程:Linux与Windows环境下的安装及配置详解 #### 一、MySQL在Linux环境下的安装步骤 在Linux环境中安装MySQL通常分为几个步骤:安装MySQL服务器、配置MySQL以及简单的测试。 1. **安装MySQL服务器...

    php mysql 后台账号管理系统

    在“php mysql 后台账号管理系统”中,PHP主要负责处理用户与服务器之间的交互,包括接收用户的登录请求、验证用户身份、处理账号创建和修改等操作。 MySQL则是一个关系型数据库管理系统(RDBMS),它为数据存储...

    mysql学习资料电子书Mysql教程精选

    - 用户账户管理:创建、删除和管理用户账户,设置权限。 - 加密和安全:理解MySQL的加密机制,如何保护数据库免受攻击。 - 角色和权限:了解如何使用角色来简化权限管理。 8. **复制与集群** - 数据库复制:...

    MySQL教程.doc

    MySQL教程.doc是一个面向初学者的文档,旨在帮助用户掌握MySQL的基本操作,包括数据库的连接、断开、数据查询和插入等关键功能。MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易用性...

    [绝对原创]Linux图解教程:使用rpm安装MySQL数据库服务器.docx

    本文将详细介绍如何通过RPM包管理系统来安装MySQL数据库服务器及其相关组件,并确保其正常运行。本文假设您已经具备基本的Linux操作系统知识。 #### 二、所需软件包 为了成功安装MySQL数据库服务器,您需要以下...

    MySQL Workbench使用教程.pdf

    - **服务器管理**:监控服务器性能,管理用户账号,配置服务器参数等。 - **数据导入与导出**:支持多种格式的数据导入导出,如CSV、Excel等。 #### 二、安装 MySQL Workbench - **访问MySQL官方网站**:[MySQL ...

    MYSQL完全中文教程

    - 用户账户管理:创建、删除用户,授权和撤销权限。 - 权限级别:全局、数据库、表和列级别的权限设置。 - 加密与安全:使用加密技术保护数据,理解SSL连接的安全性。 8. 性能优化: - 查询优化:分析查询计划...

    mysql教程.pdf

    ### MySQL教程知识点解析 #### 一、MySQL简介 **1.1.1 MySQL是什么?** - **定义**: MySQL是一款开源的关系型数据库管理系统(RDBMS),它使用SQL(Structured Query Language)作为其数据库语言。 - **特点**: MySQL...

    mysql8.0.27安装教程.zip

    本教程将详细介绍如何在Linux 7环境下安装MySQL 8.0.27,以帮助你构建可靠的数据存储和管理平台。 首先,确保你的Linux系统是最新的,通过运行以下命令更新系统包: ```bash sudo yum update -y ``` 接下来,你...

    jsp+ssm+mysql校园二手市场交易平台源码带视频教程

    该有的都有 不会的看...后台主要功能有:用户管理、商品管理、订单管理、用户余额管理、管理员密码修改等。 前台测试账号:13812345678,密码:123456 前台测试账号2:17853593223,密码:123456 或自己注册一个账号

    MySQL安装教程图解详细

    MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,被广泛应用于网站开发、数据分析、企业信息系统等多个领域。本教程将为您提供一个详细的MySQL安装过程,包括必要的背景知识、步骤详解以及可能遇到的...

Global site tag (gtag.js) - Google Analytics