MYSQL教程:MySQL服务器权限表

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。下面分别介绍一下这些表的结构和内容:

user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。

db权限表:记录各个帐号在各个数据库上的操作权限。

table_priv权限表:记录数据表级的操作权限。

columns_priv权限表:记录数据列级的操作权限。

host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。

大家注意到,以上权限没有限制到数据行级的设置。在MySQL只要实现数据行级控制就要通过编写程序(使用GET-LOCK()函数)来实现。

MySQL的版本很多,所以权限表的结构在不同版本间会有不同。如果出现这种情况,可用mysql_fix_privilege_tables脚本来修正。运行方式如下:

% mysql_fix_privilege_tables rootpassword      #这里要给出MySQL的root用户密码

最好一下子升级到MySQL 4.0.4版本,因为4.0.2和4.0.3的db表没有Create_tmp_table_priv和Lock_tables_priv权限。

MySQL的权限表定义了两部份内容,一个部份定义权限的范围,即谁(帐户)可以从哪里(客户端主机)访问什么(数据库、数据表、数据列);另一部份定义权限,即控制用户可以进行的操作。下面是一些常用的权限介绍,可直接在GRANT语句中使用。

CREATE TEMPORARY TABLES,允许创建临时表的权限。

EXECUTE,允许执行存储过程的权限,存储过程在MySQL的当前版本中还没实现。

FILE,允许你通过MySQL服务器去读写服务器主机上的文件。但有一定限制,只能访问对任何用户可读的文件,通过服务器写的文件必须是尚未存在的,以防止服务器写的文件覆盖重要的系统文件。尽管有这些限制,但为了安全,尽量不要把该权限授予普通用户。并且不要以root用户来运行MySQL服务器,因为root用户可在系统任何地方创建文件。

GRANT OPTION,允许把你自已所拥有的权限再转授给其他用户。

LOCK TABLES,可以使用LOCK TABLES语句来锁定数据表

PROCESS,允许你查看和终止任何客户线程。SHOW PROCESSLIST语句或mysqladmin processlist命令可查看线程,KILL语句或mysqladmin kill命令可终止线程。在4.0.2版及以后的版本中,PROCESS权限只剩下查看线程的能力,终止线程的能力由SUPER权限控制。

RELOAD,允许你进行一些数据库管理操作,如FLUSH,RESET等。它还允许你执行mysqladmin命令:reload,refresh,flush-hosts,flush-logs,flush-privileges,flush-status,flush-tables和flush-threads。

REPLICATION CLIENT,允许查询镜像机制中主服务器和从服务器的位置。

REPLICATION SLAVE,允许某个客户连接到镜像机制中的主服务器并请求发送二进制变更日志。该权限应授予从服务器用来连接主服务器的帐号。在4.0.2版这前,从服务器是用FILE权限来连接的。

SHOW DATABASES,控制用户执行SHOW DATABASES语句的权限。

SUPER,允许终止线程,使用mysqladmin debug命令,使用CHANGE MASTER,PURGE MASTER LOGS以及修改全局级变量的SET语句。SUPER还允许你根据存放在DES密钥文件里的密钥进行DES解密的工作。

user权限表中有一个ssl_type数据列,用来说明连接是否使用加密连接以及使用哪种类型的连接,它是一个ENUM类型的数据列,可能的取值有:

NONE,默认值,表示不需加密连接。

ANY,表示需要加密连接,可以是任何一种加密连接。由GRANT的REQUIRE SSL子句设置。

X509,表示需要加密连接,并要求客户提供一份有效的X509证书。由GRANT的REQUIRE X509子句设置。

SPECIFIED,表示加密连接需满足一定要求,由REQUIRE子句的ISSUER,SUBJECT或CIPHER的值进行设置。只要ssl_type列的值为SPECIFIED,则MySQL会去检查ssl_cipher(加密算法)、x509_issuer(证书签发者)和x509_subject(证书主题)列的值。这几列的列类型是BLOB类型的。

user权限表里还有几列是设置帐户资源使用情况的,如果以下数据列中的数全为零,则表示没有限制:

max_connections,每小时可连接服务器的次数。

max_questions,每小时可发出查询命令数。

max_updates,每小时可以发出的数据修改类查询命令数。

时间: 2024-11-08 22:29:26

MYSQL教程:MySQL服务器权限表的相关文章

MYSQL教程:MySQL Show命令

show tables或show tables from database_name;解释:显示当前数据库中所有表的名称 show databases;解释:显示mysql中所有数据库的名称 show processlist;解释:显示系统中正在运行的所有进程,也就是当前正在执行的查询.大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码. show table status;解释:显示当前使用或者指定的database中的每个表的信息.信息包括

MSSQL/MYSQL运行在低权限帐号下的方法(图文设置教程)_win服务器

例:mssql装在D盘 先创建一个帐户如:mssql设置好密码,记住密码,分配好组,如GUETST 反点D盘,属性,安全,高级,添加,输入创建的帐户名,选择:只有该文件夹,勾上:读取权限(倒数第三个),点确定.MSSQL的DATA目录给MYSQL帐号读写权限 在INI和系统产品列表里设置的数据库用户目录和备份目录所在的盘的根目录也要做类似的权限设置,否则提示开通失败 反点我的电脑,管理,服务和应用程序,Microsoft SQL Servers,对着MSSQL反点,安全性,最下面:   启动服务

MySQL权限表探索

MySQL权限表是指在mysql数据库下的5张表:user, db, tables_priv, columns_priv, procs_priv,这5张表记录了 所有的用户及其权限信息,MySQL就是通过这5张表控制用户访问的.本文将探索这5张权限表. MySQL权限表的结构和 内容 1.user:记录账号.密码.全局性权限信息等. mysql> desc mysql.user; +------------------------+--------------------------------

MYSQL教程:检查数据表和修复数据表

数据库在运行中,会因为人为因素或一些不可抗力因素造成数据损坏.所以为了保护数据的安全和最小停机时间,我们需制定详细的备份/恢复计划,并定期对计划的有效性进行测试. 本章结合MySQL服务器的运行机制和所提供的工具,介绍如何进行数据库的备份.维护和修复. 以下是几点防范的措施: 制定一份数据库备份/恢复计划,并对计划进行仔细测试. 启动数据库服务器的二进制变更日志,该功能的系统开销很小(约为1%),我们没有理由不这样做. 定期检查数据表,防范于未燃. 定期对备份文件进行备份,以防备份文件失效. 把

MySQL中基本的多表连接查询教程_Mysql

一.多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','  如:         由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢.一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN  2.   内连接INNER JOIN 在MySQL中把I SELECT * FROM table1 CROSS J

MySQL教程

    现在我们已经具备了所需的所有基础知识:可以将MySQL投入工作了!本节提供一个教程,帮助熟悉MySQL.在完成这个教程时,将创建一个样例数据库和这个数据库中的表,然后增加.检索.删除和修改信息与数据库进行交互.此外,在操作这个样例数据库的过程中,将能学到下列东西:    ■ 如何利用mysql客户机程序与MySQL通信.    ■ SQL 语言的基本语句.(如果您曾经使用过其他RDBMS,从而熟悉SQL,那么浏览一下这个教程,看看SQL 的MySQL版与您熟悉的版本有何差别也是很好的.)

Mysql入门系列:MySQL教程(1)

现在我们已经具备了所需的所有基础知识:可以将MySQL投入工作了!本节提供一个教程,帮助熟悉MySQL.在完成这个教程时,将创建一个样例数据库和这个数据库中的表,然后增加.检索.删除和修改信息与数据库进行交互.此外,在操作这个样例数据库的过程中,将能学到下列东西: ■ 如何利用mysql客户机程序与MySQL通信. ■ SQL语言的基本语句.(如果您曾经使用过其他RDBMS,从而熟悉SQL,那么浏览一下这个教程,看看SQL 的MySQL版与您熟悉的版本有何差别也是很好的.)正如上一节所述, My

图文详解Ubuntu下安装配置Mysql教程_Mysql

Ubuntu安装Mysq有l三种安装方式,下面就为大家一一讲解,具体内容如下 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多. 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例. 3. 二进制包安装:安装完成已经自动配置好环境变量,可以直接使用m

服务器安装MySQL教程及注意事项

服务器|教程|mysql 在服务器上安装.使用MySQL的注意事项 一.怎么样取得最新版本的MySQL? 要安装MySQL,首先要当然要取得它的最新版本,虽然大家都知道在FreeBSD的Packages中可以找到MySQL,但是我还是建议大家到网络上去找最新版本的MySQL. 二.安装MySQL时候的注意事项? 1.如果您是用MySQL+Apache,使用的又是FreeBSD网路操作系统的话,安装时候你应按注意到FreeBSD的版本问题,在FreeBSD的3.0以下版本来说,MySQL Sour