mysql数据库权限级别有几种_MySQL中的权限级别

mysql有5个级别的权限,分别是:

Clobal Level,Database Level,Table level,Column Level,Routine Level。

1,Clobal Level:它是针对整个mysql数据库服务器的全局权限。对mysql里的某个数据库,或某个数据库的某张表的权限。所有的权限信息都存在mysql.user这张表中。

2014110109051115.png

全局权限的设置语句:

1

GRANTALLON*.*to'root'@'localhost'

第一个*代表数据库名,这里是所有的数据库,第二个*代表表名。

全局权限有ALTER ALTER ROUTINE CREATE ALL CREATE ROUTINE CREATE TEMPORARY TABLES CREATE USER CREATE VIEW DELETE All DROP All EXECUTE FILE All INTO FILE INDEX All INSERT All LOCK TABLES PROCESS All RELOAD All REPLICATION CLIENT SLAVE STATUS REPLICATION SLAVE SELECT SHOW DATABASES SHOW VIEW view SHUTDOWN SUPER UPDATE USAGE

2,Database Level: 数据库级别的权限,通过databasename.* 设置权限。设置语句如下:

1

GRANTALLONdatabasename.*to'root'@'localhost'

它会被global level的权限给覆盖掉,如有两条如下的权限设置语句:

1

2

GRANTSELECTontest.*to'root'@'localhost';

REVOKESELECTON*.*FROM'root'@'localhost';

'root'@'localhost'将不再对test拥有select权限。

数据库权限有: CREATE USER,FILE,PROCESS,RELOAD,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHUTDOWN,SUPER USAGE

3,Table Level:表级别的权限能被全局权限和数据库级别权限覆盖

1

2

GRANTSELECTONtest.testto'root'@'localhost';

SHOW GRANTSFOR'root'@'localhost';

可以通过use选中某个数据库,直接对table名设置权限

1

GRANTSELECTONtestto'root'@'localhost';

表的权限有:ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT UPDATE

4,Column Level:表的某个列的权限。它会被前面三个权限给覆盖掉

1

GRANTSELECT(id)ONtestto'root'@'localhost';

字段级别的权限有INSERT,SELECT ,UPDATE

5,Routine Level:是针对函数和存储过程的权限,他会被1,2,3个权限给覆盖掉。

1

GRANTEXECUTEONtest.pto'root'@'localhost';

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值