mysql权限管理教程详解

发布时间:2019-07-19编辑:脚本学堂
本文介绍了mysql权限管理的相关知识,mysql数据库的权限分的很精细,在mysql管理中要控制好权限,有需要的朋友参考下。

本节内容:
mysql权限管理

root,它具有至高无上的权限,不是任何情况都要用root。
状况1:给一个菜鸟root权限。
状况2:给业务开发人员以root权限。
状况3:给负责单个库的dba以root权限。
 
可能你没有遇到到这三种状况,但事故总会发出,一旦把数据弄丢,把数据库down掉,为时已晚,所以权限的设置是必须的。
 
mysql中的grant语句可以做到我们想要的!
 

权限 意义
all [privileges]
设置除grant option之外的所有简单权限
alter
允许使用alter table
alter routine
更改或取消已存储的子程序
create
允许使用create table
create routine
创建已存储的子程序
create temporary tables
允许使用create temporary table
create user
允许使用create user, drop user, rename user和revoke all privileges。
create view
允许使用create view
delete
允许使用delete
drop
允许使用drop table
execute
允许用户运行已存储的子程序
file
允许使用select...into outfile和load data infile
index
允许使用create index和drop index
insert
允许使用insert
lock tables
允许对您拥有select权限的表使用lock tables
process
允许使用show full processlist
references
未被实施
reload
允许使用flush
replication client
允许用户询问从属服务器或主服务器的地址
replication slave
用于复制型从属服务器(从主服务器中读取二进制日志事件)
select
允许使用select
show databases
show databases显示所有数据库
show view
允许使用show create view
shutdown
允许使用mysqladmin shutdown
super
允许使用change master, kill, purge master logs和set global语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections。
update
允许使用update
usage
“无权限”的同义词
grant option
允许授予权限
 

第一种状况解决:
只需给他(common_user)增删改查数据库的权限。
 

复制代码 代码示例:
grant select, insert, update, delete on testdb.* to common_user@'%" 

第二种状况解决:
给他(produce_user)创建表,索引,视图,存储过程,函数等权限。
 

复制代码 代码示例:
grant select, insert, update, delete,create temporary table,create view,alter routine,create routine,execute,index,show databases on testdb.* to produce_user@'%' 

第三种状况解决:
给他(dba)单个库所有的权限
 

复制代码 代码示例:
grant all privileges on testdb to dba@'localhost' 

(这里localhost说明只能用于本地连接)  
 
加完了权限,不记得谁有什么权限肿么办?要用个本子记下么?
 
在mysql中有一个自带的库"mysql",库里有个表”user“,没错,这个表里记着所有的用户和他们的权限。