Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2862425
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Mysql/postgreSQL

2014-10-09 16:51:26

注:如果你认为你的数据不重要,可以不用往看下。

 

root,它具有至高无上的权限,不是任何情况都要用root!!!


查看MySQL用户权限:

show grants for 你的用户

比如:
show grants for root@'localhost';


SHOW GRANTS FOR smcguest@'%';
展示:
GRANT USAGE ON *.* TO 'smcguest'@'%' IDENTIFIED BY PASSWORD '*342D99DBE27FC24269DC8027B182F53CE4D2D820'
GRANT ALL PRIVILEGES ON `yoyo`.* TO 'smcguest'@'%' WITH GRANT OPTION





状况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)增删改查数据库的权限。

Sql代码  收藏代码
  1. grant selectinsertupdatedelete on testdb.* to common_user@'%"  

 

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

Sql代码  收藏代码
  1. grant selectinsertupdatedeleteCREATE TEMPORARY TABLECREATE VIEWALTER ROUTINE,CREATE ROUTINE,EXECUTEINDEX,SHOW DATABASES on testdb.* to produce_user@'%'  

 

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

Sql代码  收藏代码
  1. grant all privileges on testdb to dba@'localhost'(这里localhost说明只能用于本地连接)  

 

加完了权限,不记得谁有什么权限肿么办?要用个本子记下么?

 

你应该早就发同在mysql中有一个自带的库"mysql",库里有个表”user“,没错,这个表里记着所有的用户和他们的权限!!!

阅读(1501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~