欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL学习笔记之二十一 用户的权限_MySQL

程序员文章站 2022-05-30 15:28:09
...
一、数据库和表的权限

下列权限运用于数据库和表上的操作。

SELECT

允许你使用SELECT语句从表中检索数据。SELECT语句只有在他们真正从一个表中检索行是才需要select权限,你可以执行某个SELECT语句,甚至没有任何到服务器上的数据

库里的存取任何东西的许可。例如,你可使用mysql客户作为一个简单的计算器:

mysql> SELECT 1+1;

mysql> SELECT PI()*2;

UPDATE

允许你修改表中的已有的记录。

INSERT

允许在表中插入记录。

DELETE

允许你从表中删除现有记录。

ALTER

允许你使用ALTER TABLE语句,这其实是一个简单的第一级权限,你必须由其他权限,这看你想对数据库实施什么操作。

CREATE

允许你创建数据库和表,但不允许创建索引。

DROP

允许你删除(抛弃)数据库和表,但不允许删除索引。

注意:如果你将mysql数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL存取权限的数据库!

INDEX

允许你创建并删除索引。

REFERENCES

目前不用。

二、管理权限

下列权限运用于控制服务器或用户授权能力的操作的管理性操作。

FILE

允许你告诉服务器读或写服务器主机上的文件。该权限不应该随便授予,它很危险,见“回避授权表风险”。服务器确实较谨慎地保持在一定范围内使用该权限。你只能读

任何人都能读的文件。你正在写的文件必须不是现存的文件,这防止你迫使服务器重写重要文件,如/etc/passwd或属于别人的数据库的数据目录。

如果你授权FILE权限,确保你不以UNIX的root用户运行服务器,因为root可在文件系统的任何地方创建新文件。如果你以一个非特权用户运行服务器,服务器只能在给用户

能访问的目录中创建文件。

GRANT

允许你将你自己的权限授予别人,包括GRANT。

PROCESS

允许你通过使用SHOW PROCESS语句或mysqladmin process命令查看服务器内正在运行的线程(进程)的信息。这个权限也允许你用KILL语句或mysqladmin kill命令杀死线

程。你总是能看到或杀死你自己的线程。PROCESS权限赋予你对任何线程做这些事情的能力。

RELOAD

允许你执行大量的服务器管理操作。你可以发出FLUSH语句,你也能指性mysqladmin的reload、refresh、flush-hosts、flush-logs、flush-privileges和flush-tables等

命令。

SHUTDOWN

允许你用mysqladmin shutdown关闭服务器。

在user、db和host表中,每一个权限以一个单独的列指定。这些列全部声明为一个ENUM("N","Y")类型,所以每个权的缺省值是“N”。在tables_priv和columns_priv中的

权限以一个SET表示,它允许权限用一个单个列以任何组合指定。这两个表比其他三个表更新,这就是为什么它们使用更有效的表示方式的原因。(有可能在未来,user、db和

host表也用一个SET类型表示。)