MySQL权限说明 MySQL是经常要使用的一种关系型数据库,数据库作为存储重要数据的地方,相应的,对数据库的授权管理,也必须很小心,下面,我将MySQL的权限作了整理,方便需要的时候查看。MySQL权限级别 服务器》数据库》表》列 另外还有存储过程、视图和索引 MySQL权限列表: 权限 作用范围 作用 all 服务器 所有权限 select 表、列 选择行 insert 表、列 插入行 update 表、列 更新行 delete 表 删除行 create 数据库、表、索引 创建 drop 数据库、表、视图 删除 reload 服务器 允许使用flush语句 shutdown 服务器 关闭服务 process 服务器 查看线程信息 file 服务器 文件操作 grantoption 数据库、表、存储过程 授权 references 数据库、表 外键约束的父表 index 表 创建删除索引 alter 表 修改表结构 showdatabases 服务器 查看数据库名称 super 服务器 超级权限 createtemporarytables 表 创建临时表 locktables 数据库 锁表 execute 存储过程 执行 replicationclient 服务器 允许查看主从二进制日志状态 replicationslave 服务器 主从复制 createview 视图 创建视图 showview 视图 查看视图 createroutine 存储过程 创建存储过程 alterroutine 存储过程 修改删除存储过程 createuser 服务器 创建用户 event 数据库 创建更改删除查看事件 trigger 表 触发器 createtablespace 服务器 创建更改删除表空间日志文件 proxy 服务器 代理成为其它用户 usage 服务器 没有权限MySQL授权命令创建用户 CREATEUSERusernamehostIDENTIFIEDBYpassword; CREATEUSERuser192。168。1。10IDENTIFIEDBYpassword; CREATEUSERuser;不设置密码 说明:如果主机位使用,那么将允许从任意主机登录;密码可以为空,若为空,则用户可以不需要密码登录服务器。 补充:主机名或者IP中可以使用进行通配,如。baidu。com;192。168。1。 补充:如果即有字母,又有数字,则不进行匹配(防止恶意访问) 补充:IPv4地址可以使用掩码,如192。168。0。0255。255。0。0匹配整个B类地址进行授权 GRANTprivilegesONdatabasename。tablenameTOusernamehost; GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPON。TOuser; 如果授予所有权限,则可以使用ALL,所有数据库和所有表可以使用 注意:ALL并不包括GRANTOPTION权限(也不包括proxy权限),如果需要使本用户可以给其它用户授权,则可以使用如下语句: GRANTGRANTOPTIONON。TOuser;或者: GRANTprivilegesONdatabasename。tablenameTOusernamehostWITHGRANTOPTION;修改密码 SETPASSWORDFORuserPASSWORD(pass); mysqladminu用户名p旧密码password新密码取消授权 REVOKEprivilegeONdatabasename。tablenameFROMusernamehost; REVOKESELECTON。FROMuser;删除用户 DROPUSERusernamehost;查看用户权限 查看当前用户权限: showgrants; 查看其它用户权限: showgrantsforuser;用户重命名 RENAMEUSERuserTOdong;刷新权限 flushprivileges; 回到顶部MySQL权限说明all,服务器 授予所有权限alter,表 可以使用altertable来改变表的结构。altertable同时需要create和insert权限;重命名表需要旧表的alter和drop权限,新表的create和insert权限alterroutine,存储过程 更改和删除存储过程(过程和函数)create,数据库表索引 允许创建新的数据库和表以及索引createroutine,存储过程 允许创建存储过程(过程和函数)createtablespace,服务器 创建、更改或删除表空间和日志文件组createtemporarytables,表 使用createtemporarytable创建临时表。会话创建临时表后,不再对该表进行权限检查,创建会话可以对该表执行任何操作createuser,服务器 创建用户,允许使用alterusercreateuserdropuserrenameuserrevokeallprivileges语句对用户权限进行操作createview,视图 创建视图,允许使用createview语句delete,表 允许删除行drop,数据库表视图 删除现有数据库、表和视图。在分区表使用altertabledroppartition语句,truncatetable也需要drop权限。若将mysql库的drop权限授予用户,则该用户可以删除权限数据库event,数据库 创建、更改、删除或查看事件调度程序的事件execute,存储过程 执行存储过程(过程和函数)file,服务器 允许使用loaddatainfile和selectintooutfile语句以及loadfile()函数。从5。7。17开始,createtable语句中的datadirectory或者indexdirectory选项也需要该权限grantoption,数据库表存储过程 授予其它用户或者从其它用户删除你所拥有的权限。grantoption权限使用户可以将其权限授予其他用户。具有不同特权和grantoption权限的两个用户可以组合特权。index,表 创建或删除索引。适用于现有表,如果你具有create权限,则可以在创建表语句中包含索引定义insert,表列 插入行。analyzetableoptimizetablerepairtable表维护语句也需要该权限locktables,数据库 锁表。使用locktables语句显示的锁定你拥有select权限的表,包括写入锁,可以防止其它他话读取锁定的表process,服务器 显示线程信息。使用showprocesslistmysqladminprocesslist查看其它用户的线程,还可以使用showengine语句proxy,服务器 代理权限。可以代理成为另一个用户references,数据库表 创建外键约束的父表需要该权限reload,服务器 允许使用flush语句。同进还启用等效的mysqladmin命令:flushhosts,flushlogs,flushprivileges,flushstatus,flushtables,flushthreads,refresh和reloadreplicationclient,服务器 允许使用showmasterstatusshowslavestatusshowbinarylogs语句replicationslave,服务器 允许从服务器请求当前主服务器上的更新select,表列 选择行。其他读取列的语句也需要该权限,如delete或update语句中where子句指定的列showdatabases,服务器 通过showdatabases语句查看数据库名称showview,视图 通过showcreateview语句查看视图,与explain一起使用的视图也需要此权限shutdown,服务器 使用shutdown语句,mysqladmin关闭以及mysqlshutdown()函数super,服务器 通过修改全局系统变量来启用配置更改。对某些系统变量,设置会话值也需要该权限。binlogformat,sqllogbin,sqllogoff 全局事务特性更改 启动和停止复制,包括组复制 允许使用changemasterto和changereplicationfilter语句 二进制日志控制,purgebinarylogs和binlog语句 执行视图或存储程序时启用授权ID 允许使用createserver,alterserver和dropserver语句 允许使用mysqladmindebug命令 启用innodb密钥轮换 使用desencrypt()函数读取DES密钥文件 使用版本令牌用户定义函数 对非super帐户客户端连接的控制 使用kill语句或者mysqladminkill命令终止属于其他用户的线程 即使达到maxconnections控制的连接限制,服务器也会授受来自super客户端的连接 即使使用了readonly系统变量,也可以执行更新 super客户端连接时,服务器不执行initconnect系统变量内容 处于脱机模式offlinemode的服务器不会终止super客户端的连接,并接受来自super客户端的新连接 如果启用二进制日志记录,可能还需要super权限创建或更改存储过程trigger,服务器 触发器。创建、删除、执行、显示该表的触发器update,表列 更新行usage,服务器 没有任何权限