mysql有5个级别的权限,分别是:
Clobal Level,Database Level,Table level,Column Level,Routine Level。
1,Clobal Level:它是针对整个mysql数据库服务器的全局权限。对mysql里的某个数据库,或某个数据库的某张表的权限。所有的权限信息都存在mysql.user这张表中。
全局权限的设置语句:
GRANT ALL ON *.* to 'root'@'localhost'
2,Database Level: 数据库级别的权限,通过databasename.* 设置权限。设置语句如下:
GRANT ALL ON databasename.* to 'root'@'localhost'
GRANT SELECT on test.* to 'root'@'localhost'; REVOKE SELECT ON *.* FROM 'root'@'localhost';
3,Table Level:表级别的权限能被全局权限和数据库级别权限覆盖
GRANT SELECT ON test.test to 'root'@'localhost'; SHOW GRANTS FOR 'root'@'localhost';
GRANT SELECT ON test to 'root'@'localhost';
4,Column Level:表的某个列的权限。它会被前面三个权限给覆盖掉
GRANT SELECT(id) ON test to 'root'@'localhost';
5,Routine Level:是针对函数和存储过程的权限,他会被1,2,3个权限给覆盖掉。
GRANT EXECUTE ON test.p to'root'@'localhost';