MySQL权限
来源:互联网 发布:淘宝今日分享任务在哪 编辑:程序博客网 时间:2024/06/13 12:48
授予MySQL帐户的权限决定了帐户可以执行哪些操作。MySQL权限在其应用的上下文和不同操作级别上有所不同:
管理权限使用户能够管理MySQL服务器的操作。这些权限是全局的,因为它们不是特定于特定数据库的。
数据库权限适用于数据库及其中的所有对象。可以为特定数据库或全局授予这些权限,以便它们适用于所有数据库。
数据库对象(如表,索引,视图和存储例程)的权限可以针对数据库中的特定对象,数据库中给定类型的所有对象(例如数据库中的所有表)或全局的所有对象所有数据库中给定类型的对象)。
有关帐户权限的信息存储在 user
,db
, tables_priv
,columns_priv
,和procs_priv
在表 mysql
系统数据库(见 第6.2.2节“授权表”)。在第6.2.6节“权限更改生效时”指示的情况下,MySQL服务器启动时将这些表的内容读入内存 。访问控制决定基于授权表的内存中副本。
一些MySQL版本引入了授予表结构的更改,以添加新的权限或功能。为了确保您可以利用任何新功能,只要升级MySQL,就可以更新授权表以拥有当前的结构。请参见第4.4.7节“ mysql_upgrade - 检查和升级MySQL表”。
下表显示在GRANT
和 REVOKE
语句中使用的特权名称 ,以及与授权表中的每个权限相关联的列名称以及特权适用的上下文。
表6.2 GRANT和REVOKE的允许权限
ALL [PRIVILEGES]
“ 所有权限 ”的同义词服务器管理ALTER
Alter_priv
表ALTER ROUTINE
Alter_routine_priv
存储例程CREATE
Create_priv
数据库,表或索引CREATE ROUTINE
Create_routine_priv
存储例程CREATE TABLESPACE
Create_tablespace_priv
服务器管理CREATE TEMPORARY TABLES
Create_tmp_table_priv
表CREATE USER
Create_user_priv
服务器管理CREATE VIEW
Create_view_priv
查看DELETE
Delete_priv
表DROP
Drop_priv
数据库,表或视图EVENT
Event_priv
数据库EXECUTE
Execute_priv
存储例程FILE
File_priv
文件访问服务器主机GRANT OPTION
Grant_priv
数据库,表或存储的例程INDEX
Index_priv
表INSERT
Insert_priv
表或列LOCK TABLES
Lock_tables_priv
数据库PROCESS
Process_priv
服务器管理PROXY
请参阅proxies_priv
表服务器管理REFERENCES
References_priv
数据库或表RELOAD
Reload_priv
服务器管理REPLICATION CLIENT
Repl_client_priv
服务器管理REPLICATION SLAVE
Repl_slave_priv
服务器管理SELECT
Select_priv
表或列SHOW DATABASES
Show_db_priv
服务器管理SHOW VIEW
Show_view_priv
查看SHUTDOWN
Shutdown_priv
服务器管理SUPER
Super_priv
服务器管理TRIGGER
Trigger_priv
表UPDATE
Update_priv
表或列USAGE
“ 没有权限 ”的同义词服务器管理以下列表提供了MySQL中可用权限的一般说明。特定的SQL语句可能具有比此处指示的更具体的权限要求。如果是这样,有关陈述的描述提供了细节。
该
ALL
或ALL PRIVILEGES
权限说明符的简写。它代表“ 给定权限级别可用的所有权限 ” (除外GRANT OPTION
)。例如,ALL
在全局或表级授予授予所有全局权限或所有表级别权限。该
ALTER
权限允许使用该ALTER TABLE
语句来更改表的结构。ALTER TABLE
还要求CREATE
和INSERT
权限。重命名表需要ALTER
和DROP
对旧表,CREATE
以及INSERT
对新表。ALTER ROUTINE
需要 该权限来更改或删除存储的例程(过程和函数)。该
CREATE
权限允许创建新的数据库和表。CREATE ROUTINE
需要创建存储的例程(过程和函数) 的权限。CREATE TABLESPACE
需要创建,更改或删除表空间和日志文件组 的权限。该
CREATE TEMPORARY TABLES
权限允许使用该CREATE TEMPORARY TABLE
语句创建临时表 。在会话创建了一个临时表之后,服务器不会对该表进行进一步的特权检查。所述创建会话可以在桌子上进行任何操作,例如
DROP TABLE
,INSERT
,UPDATE
,或SELECT
。有关详细信息,请参见第13.1.18.3节“CREATE TEMPORARY TABLE语法”。该
CREATE USER
权限允许使用的ALTER USER
,CREATE USER
,DROP USER
,RENAME USER
,和REVOKE ALL PRIVILEGES
语句。该
CREATE VIEW
权限允许使用该CREATE VIEW
语句。该
DELETE
特权使行从数据库中的表被删除。该
DROP
特权使您能够删除(删除)现有的数据库,表和视图。DROP
为了ALTER TABLE ... DROP PARTITION
在分区表上使用语句,需要该 权限。该DROP
也需要特权TRUNCATE TABLE
。 如果授予DROP
的特权mysql
数据库用户,该用户可以删除其中的MySQL访问权限被存储在数据库中。EVENT
需要 该权限来创建,更改,删除或查看事件计划程序的事件。EXECUTE
执行存储例程(过程和函数)需要 该权限。该
FILE
权限允许您使用LOAD DATA INFILE
和SELECT ... INTO OUTFILE
语句和LOAD_FILE()
功能在服务器主机上读取和写入文件。具有该FILE
权限的用户可以读取服务器主机上任何可由MySQL服务器读取或读取的文件。(这意味着用户可以读取任何数据库目录中的任何文件,因为服务器可以访问任何这些文件。)该FILE
权限还使用户能够在MySQL服务器具有写入权限的任何目录中创建新文件。这包括服务器的数据目录,其中包含实现权限表的文件。作为一项安全措施, 服务器将不会覆盖现有文件。FILE
从MySQL 5.7.17开始,该权限需要在该语句中使用DATA DIRECTORY
orINDEX DIRECTORY
table选项CREATE TABLE
。要限制文件可以读取和写入的位置,请将
secure_file_priv
系统设置为特定目录。请参见 第5.1.5节“服务器系统变量”。该
GRANT OPTION
权限使您能够给予其他用户或从其他用户删除您拥有的这些权限。该
INDEX
权限使您可以创建或删除(删除)索引。INDEX
适用于现有表。如果您具有CREATE
表的权限,则可以在CREATE TABLE
语句中包含索引定义。该
INSERT
权限允许将行插入到数据库中的表中。INSERT
还需要对ANALYZE TABLE
,OPTIMIZE TABLE
和REPAIR TABLE
表维护语句。该
LOCK TABLES
权限允许使用显式LOCK TABLES
语句来锁定具有该SELECT
权限的表。这包括使用写锁,这可以阻止其他会话读取锁定的表。该
PROCESS
权限属于显示有关在服务器中执行的线程的信息(即有关会话执行的语句的信息)。该权限允许使用SHOW PROCESSLIST
或mysqladmin进程列表来查看属于其他帐户的线程; 你可以随时看到你自己的线程。该PROCESS
权限还允许使用的SHOW ENGINE
。该
PROXY
权限使用户能够模拟或被称为另一用户。请参阅 第6.3.10节“代理用户”。REFERENCES
MySQL 5.7.6之前 的权限未使用。从5.7.6开始,创建外键约束需要REFERENCES
父表的 权限。该
RELOAD
权限允许使用该FLUSH
语句。这也使中mysqladmin等效于命令FLUSH
操作:flush-hosts
,flush-logs
,flush-privileges
,flush-status
,flush-tables
,flush-threads
,refresh
,和reload
。该
reload
命令告诉服务器将授权表重新加载到内存中。flush-privileges
是同义词reload
。该refresh
命令关闭并重新打开日志文件并刷新所有表。其他 命令执行类似于但更具体的功能 ,并且在某些情况下可能是优选的。例如,如果要仅仅刷新日志文件,是一个更好的选择。flush-
xxx
refresh
flush-logs
refresh
该
REPLICATION CLIENT
权限允许使用的SHOW MASTER STATUS
,SHOW SLAVE STATUS
和SHOW BINARY LOGS
语句。REPLICATION SLAVE
应授予从属服务器用作连接到当前服务器作为主服务器的帐户 的权限。没有此权限,从站不能请求对主服务器上的数据库进行的更新。该
SELECT
特权使您能够从数据库中的表中选择行。SELECT
语句SELECT
只有在实际从表中检索行时才需要该 权限。一些SELECT
语句不访问表,可以在没有任何数据库的权限的情况下执行。例如,您可以使用SELECT
简单的计算器来评估不引用表的表达式:SELECT 1+1;SELECT PI()*2;
SELECT
读取列值的其他语句也需要 该权限。例如,SELECT
需要用于上的右侧引用列col_name
=expr
赋值UPDATE
语句或用于在指定的列WHERE
的条款DELETE
或UPDATE
语句。SELECT
对于正在使用的表或视图EXPLAIN
,还包括任何基础视图表,还需要 该权限 。该
SHOW DATABASES
权限使帐户能够通过发出SHOW DATABASE
语句来查看数据库名称 。没有此权限的帐户只能看到具有某些权限的数据库,如果服务器已启动该--skip-show-database
选项,则无法使用该语句 。请注意,任何全局权限都是数据库的特权。该
SHOW VIEW
权限允许使用该SHOW CREATE VIEW
语句。与使用的视图也需要此权限EXPLAIN
。该
SHUTDOWN
权限允许使用该SHUTDOWN
语句,mysqladmin shutdown命令和mysql_shutdown()
C API函数。该
SUPER
特权使这些操作和服务器的行为:通过修改全局系统变量启用配置更改。对于某些系统变量,设置会话值也需要
SUPER
特权; 如果是,则在变量描述中指出。实例包括binlog_format
,sql_log_bin
,和sql_log_off
。启用和停止从服务器上的复制,包括组复制。
使用
CHANGE MASTER TO
和CHANGE REPLICATION FILTER
语句。通过
PURGE BINARY LOGS
和BINLOG
语句启用二进制日志控制 。启用在执行视图或存储的程序时设置有效的授权ID。具有此权限的用户可以在
DEFINER
视图或存储的程序的属性中指定任何帐户 。允许使用的
CREATE SERVER
,ALTER SERVER
和DROP SERVER
语句。启用mysqladmin调试 命令。
启用
InnoDB
按键旋转。启用该
DES_ENCRYPT()
功能读取DES密钥文件 。启用版本令牌用户定义的功能。
启用对不允许非
SUPER
帐户的客户端连接的控制:使用该
KILL
语句或mysqladmin kill 命令来杀死属于其他帐户的线程。(你可以随时杀死自己的线程。)SUPER
即使max_connections
达到由系统变量控制的连接限制 ,服务器也接受客户端的 一个连接 。即使
read_only
启用了系统变量,也可以进行更新 。这适用于表更新和帐户管理语句的使用,例如GRANT
和REVOKE
。客户端连接
init_connect
时 ,服务器不执行 系统变量内容SUPER
。离线模式(
offline_mode
启用)的服务器不会SUPER
在下一个客户端请求时终止 客户端连接,并接受来自SUPER
客户端的新连接 。
SUPER
如第23.7节“存储程序的二进制日志记录”所述,如果启用二进制日志记录,则 还可能需要创建或更改存储的函数的权限 。该
TRIGGER
特权启用触发操作。您必须具有此表的特权才能创建,删除,执行或显示该表的触发器。当触发器被激活(由谁拥有特权执行用户
INSERT
,UPDATE
或DELETE
与触发器关联的表的语句),触发器执行要求谁定义触发器的用户仍然有TRIGGER
特权。该
UPDATE
权限允许在数据库中的表中更新行。该
USAGE
权限说明符表示“ 没有权限。“它在全球一级GRANT
用于修改帐户属性,如资源限制或SSL特性,而不需要指定特定的帐户权限。SHOW GRANTS
显示USAGE
以指示帐户在特权级别没有权限。
这是一个好主意,只授予一个帐户所需的特权。在给予FILE
和管理特权方面应特别小心:
该
FILE
权限可以被滥用来读取MySQL服务器可以在服务器主机上读取的任何文件的数据库表。这包括服务器数据目录中的所有世界可读的文件和文件。然后可以使用该表SELECT
将其内容传输到客户端主机。该
GRANT OPTION
权限使用户能够将权限授予其他用户。具有不同特权和特权的两个用户GRANT OPTION
可以组合权限。的
ALTER
特权可以使用通过重命名表颠覆权限系统。SHUTDOWN
可以通过终止服务器来 将特权用于拒绝其他用户的服务。该
PROCESS
权限可用于查看当前执行语句的纯文本,包括设置或更改密码的语句。该
SUPER
权限可用于终止其他会话或更改服务器的运行方式。授予
mysql
数据库本身的特权可用于更改密码和其他访问权限信息。密码存储加密,所以恶意用户不能简单地读取它们来了解纯文本密码。但是,具有对user
表authentication_string
列的写入访问权限的用户 可以更改帐户的密码,然后使用该帐户连接到MySQL服务器。
- Mysql 权限
- MySQL权限
- mysql权限
- mysql权限
- mysql 权限
- mysql 权限
- mysql 权限
- MySql权限
- MySQL权限
- mysql权限
- mysql权限
- mysql 权限
- mysql权限
- Mysql权限
- mysql权限
- mysql权限
- MYSQL权限
- mysql权限
- PAT(Basic Level)_1001_害死人不偿命的(3n+1)猜想
- Linux 文件系统管理---分区介绍
- Activity的生命周期
- Ubuntu16.04设置并查看DNS
- LA 3530 Martian Mining
- MySQL权限
- HDU1026 Ignatius and the Princess I(BFS)
- EasyPusher/EasyRTMP摄像头偏暗的问题解决
- 【宏观】长期中的一般均衡模型
- java io读取文件乱码解决办法
- UEFI规范驱动模型(一):驱动模型包含的要素
- 3 Zabbix客户端安装及配置
- linux下 安装python3.5、pip
- JVM的GC中对象的age以及JVM内存的分配策略