`

mysql关于权限的管理

阅读更多
http://hi.baidu.com/liheng_2009/blog/item/0f2aaebd30fc980719d81f9b.html

查看用户权限

show grants for 你的用户

比如:
show grants for root@'localhost';

Grant 用法

GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD '*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';
GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost';

我先按我的理解解释一下上面两句的意思
建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限

使用GRANT

GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql> GRANT <privileges> ON <what>
-> TO <user> [IDENTIFIED BY "<password>"]
-> [WITH GRANT OPTION];


  正如你看到的,在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。

  <privileges>是一个用逗号分隔的你想要赋予的权限的列表。你可以指定的权限可以分为三种类型:

  数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。

  全局管理权限:

file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。

  特别的权限:

ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。


  这些权限所涉及到的MySQL的特征,其中的一些我们至今还没看到,而其中的绝大部分是你所熟悉的。

<what> 定义了这些权限所作用的区域。*.*意味着权限对所有数据库和数据表有效。dbName.*意味着对名为dbName的数据库中的所有数据表有效。 dbName.tblName意味着仅对名为dbName中的名为tblName的数据表有效。你甚至还可以通过在赋予的权限后面使用圆括号中的数据列的列表以指定权限仅对这些列有效(在后面我们将看到这样的例子)。

  <user>指定可以应用这些权限的用户。在MySQL中,一个用户通过它登录的用户名和用户使用的计算机的主机名/IP地址来指定。这两个值都可以使用%通配符(例如kevin@%将允许使用用户名kevin从任何机器上登录以享有你指定的权限)。

  <password>指定了用户连接MySQL服务所用的口令。它被用方括号括起,说明IDENTIFIED BY "<password>"在GRANT命令中是可选项。这里指定的口令会取代用户原来的密码。如果没有为一个新用户指定口令,当他进行连接时就不需要口令。

这个命令中可选的WITH GRANT OPTION部分指定了用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。请小心使用这项功能--虽然这个问题可能不是那么明显!例如,两个都拥有这个功能的用户可能会相互共享他们的权限,这也许不是你当初想看到的。

  让我们来看两个例子。建立一个名为dbmanager的用户,他可以使用口令managedb从server.host.net连接 MySQL,并仅仅可以访问名为db的数据库的全部内容(并可以将此权限赋予其他用户),这可以使用下面的GRANT命令:

mysql> GRANT ALL ON db.*
-> TO dbmanager@server.host.net
-> IDENTIFIED BY "managedb"
-> WITH GRANT OPTION;


现在改变这个用户的口令为funkychicken,命令格式如下:
   mysql> GRANT USAGE ON *.*
   -> TO dbmanager@server.host.net
   -> IDENTIFIED BY "funkychicken";

请注意我们没有赋予任何另外的权限(the USAGE权限只能允许用户登录),但是用户已经存在的权限不会被改变。

  现在让我们建立一个新的名为jessica的用户,他可以从host.net域的任意机器连接到MySQL。他可以更新数据库中用户的姓名和 email地址,但是不需要查阅其它数据库的信息。也就是说他对db数据库具有只读的权限(例如,Select),但是他可以对Users表的name列和email列执行Update操作。命令如下:

mysql> GRANT Select ON db.*
-> TO jessica@%.host.net
-> IDENTIFIED BY "jessrules";
mysql> GRANT Update (name,email) ON db.Users
-> TO jessica@%.host.net;


  请注意在第一个命令中我们在指定Jessica可以用来连接的主机名时使用了%(通配符)符号。此外,我们也没有给他向其他用户传递他的权限的能力,因为我们在命令的最后没有带上WITH GRANT OPTION。第二个命令示范了如何通过在赋予的权限后面的圆括号中用逗号分隔的列的列表对特定的数据列赋予权限。



遇到了 SQLException: access denied for  @'localhost' (using password: no)
解决办法   grant all privileges on *.* to joe@localhost identified by '1';
           flush privileges;
分享到:
评论

相关推荐

    springboot+security+jwt+mybaits-plus+mysql实现权限管理

    在本项目中,我们主要探讨的是如何利用Spring Boot、Spring Security、JWT(JSON Web Tokens)、MyBatis-Plus以及MySQL数据库来构建一个完整的权限管理系统。下面将详细解析这些技术及其在项目中的应用。 1. Spring...

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

    ### 以普通权限运行MySQL的操作指南 在网络安全日益受到重视的今天,确保系统中的每一项服务都以最小必要的权限运行显得尤为重要。对于MySQL这样的数据库服务来说,若其以最高权限(system)运行,一旦出现安全漏洞...

    jsp+servlet+mysql图书权限管理系统

    在这个图书权限管理系统中,MySQL存储了所有关于图书和用户的数据,如图书的标题、作者、出版社等信息,以及用户的账号、密码、权限等级等。`bookstore.sql`文件很可能是数据库的初始脚本,包含了创建数据库、表结构...

    通用权限管理系统+springboot+mybatis plus+spring security+jwt+redis+mysql

    通用权限管理系统可练手可毕设,如果项目中有权限开发要求可直接拿来基础开发。 系统设计包括前端Vue框架和后端SpringBoot框架的搭建,以及数据库和权限控制模块的设计。前端使用Vue框架进行页面开发,利用Vue ...

    设置mysql用户权限

    在MySQL数据库管理中,正确地配置用户权限是非常重要的步骤之一,它不仅关乎数据的安全性,还能确保不同角色的用户能够高效、安全地访问所需的数据资源。本文将详细介绍如何设置MySQL用户的权限,并通过具体的示例来...

    mmall_管理_权限管理mysql_权限_

    【标题】"mmall_管理_权限管理mysql_权限_" 指的是一款基于JWT、SpringBoot、Mybatis和MySQL的权限管理系统。这样的系统主要用于控制不同用户或角色在应用程序中的访问权限,确保数据安全和操作合规性。 【描述】...

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven实现的通用权限管理系统

    Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统。 Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统 Spring+SpringMVC+...

    java/mysql 权限管理系统 源码

    【标题】:“java/mysql 权限管理系统 源码”是指一套基于Java编程语言和MySQL数据库的权限管理软件系统的源代码。这样的系统通常用于管理用户访问控制、角色分配以及资源的权限设定,确保数据安全和操作合规性。 ...

    MYSQL用户管理和权限管理.pdf

    1. **MySQL权限类型**:包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、INDEX、ALTER、GRANT、REVOKE等。 2. **授权**:使用`GRANT`语句向用户授予特定权限。 3. **收回权限**:使用`REVOKE`语句撤销用户的权限...

    mysql用户权限设置

    MySQL 用户权限设置 在 MySQL 数据库中,用户权限设置是非常重要的,因为它涉及到数据的安全和访问控制。本文将详细介绍 MySQL 用户权限设置的相关知识点,包括创建用户、修改密码、赋予权限、回收权限、查看用户...

    java+mysql权限管理系统

    【标题】:“java+mysql权限管理系统”是一种基于Java技术和MySQL数据库,结合了Spring、Struts和Hibernate(简称S2SH)三大框架构建的高效、实用的权限管理解决方案。这个系统设计的目标是为组织或企业提供安全、...

    mysql 账号权限管理命令

    MySQL 账号 权限, 用户管理 mysql&gt;use mysql; 查看 mysql&gt; select host,user,password from user ; 创建

    MYSQL权限不够解决办法

    解决MySQL权限不足的问题需要对MySQL的权限管理系统有基本的理解。通常情况下,可以通过增加必要的权限、刷新权限等方式来解决问题。在实际操作过程中,还需要注意安全性,避免不必要的风险。希望本文能够帮助您有效...

    深入掌握MySQL用户权限管理:安全策略与实践

    MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了强大的用户权限管理机制,以确保数据的安全性和完整性。用户权限管理是数据库安全管理的核心,它允许数据库管理员(DBA)控制不同用户对数据库对象的访问和...

    Java serlvet+Jdbc+jsp+mysql 用户权限管理系统

    自己初学java,利用之前的项目经验而写出来的一套基础的用户权限管理系统。用到了javaWeb 最底层的servlet 及 jdbc .对初学java的童鞋具有很大的参考意义。页面是用了bootstrap。可以完整的运行。

    更新MySql权限.zip

    "更新MySQL权限.zip"这个压缩包就是为了解决这个问题。 该压缩包包含以下文件: 1. **使用说明.txt**:这个文件应该提供了关于如何使用这个工具的详细步骤和注意事项,包括如何运行批处理文件以及可能遇到的问题和...

    通过Vue+node.js+Element-UI+MySql实现超市管理系统.rar

    订单管理模块,数据统计echarts表,该管理系统通过Vue+node.js+Element-UI+MySql实现,其主要功能模块含有用户登陆模块,用户管理模块,权限管理模块,商品管理模块,订单管理模块。 论文应当对各个部分的设计和实现...

    ssh+mysql权限管理自动建库

    SSH+MySQL权限管理自动建库是企业级应用中常见的需求,尤其在开发高效、安全的管理系统时。SSH指的是Spring、Struts和Hibernate这三个Java技术的组合,它们分别负责了应用的依赖注入、MVC(模型-视图-控制器)框架和...

    SSH+JqueryUI+MySQL+权限管理

    总结来说,"SSH+JqueryUI+MySQL+权限管理"项目是一个基于Java Web的系统,使用Struts2处理请求,Spring管理依赖和事务,Hibernate进行数据操作,jQuery UI提升前端交互,以及MySQL作为数据存储。同时,系统包含了...

    权限管理系统SpringMVC+Mybatis+JSP+MySQL.zip

    《权限管理系统:SpringMVC+Mybatis+JSP+MySQL深度解析》 在现代Web开发领域,构建一个高效且安全的权限管理系统至关重要。本项目"权限管理系统SpringMVC+Mybatis+JSP+MySQL"正是这样一个平台,它利用了SpringMVC...

Global site tag (gtag.js) - Google Analytics