欢迎投稿

今日深度:

mysql的权限级别,mysql权限级别

mysql的权限级别,mysql权限级别


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'

第一个*代表数据库名,这里是所有的数据库,第二个*代表表名。
全局权限有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.* 设置权限。设置语句如下:

GRANT ALL ON databasename.* to 'root'@'localhost'
它会被global level的权限给覆盖掉,如有两条如下的权限设置语句:

GRANT SELECT on test.* to 'root'@'localhost';
REVOKE SELECT ON *.* FROM 'root'@'localhost';
'root'@'localhost'将不再对test拥有select权限。
数据库权限有: CREATE USER,FILE,PROCESS,RELOAD,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHUTDOWN,SUPER USAGE


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

GRANT SELECT ON test.test to 'root'@'localhost';
SHOW GRANTS FOR 'root'@'localhost';
可以通过use选中某个数据库,直接对table名设置权限

GRANT SELECT ON test to 'root'@'localhost';	
表的权限有:ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT UPDATE


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

GRANT SELECT(id) ON test to 'root'@'localhost';
字段级别的权限有INSERT,SELECT ,UPDATE


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

GRANT EXECUTE ON test.p to'root'@'localhost';



简述构成mysql权限控制步骤

1、mysql检查user权限表中的权限信息,匹配user、host字段值,查看请求的全局权限是否被允许,如果找到匹配结果,操作被允许执行,否则进行下一步。
2、mysql检查db权限表中的权限信息,匹配user、host字段值,查看请求的数据库级别的权限是否被允许,如果找到匹配结果,操作被允许执行,否则进行下一步。
3、mysql检查tables_priv权限表中的权限信息,匹配user、host字段值,查看请求的数据库级别的权限是否被允许,如果找到匹配结果,操作被允许执行,否则进行下一步。
4、mysql检查columns_priv权限表中的权限信息,匹配user、host字段值,查看请求的数据库级别的权限是否被允许,如果找到匹配结果,操作被允许执行,否则返回错误信息。
 

mysql中怎设置用户与管理员的权限?

MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限。两条语句扮演了MySQL数据库的前端角色,并提供与直接操作这些表的内容不同的另一种方法。CREATE和REVOKE语句影响4个表: 中.国站长站

还有第5个授权表(host),但它不受GRANT和REVOKE的影响。 中.国.站长站

当你对一个用户发出一条GRANT语句时,在user表中为该用户创建一条记录。如果语句指定任何全局权限(管理权限或适用于所有数据库的权限),这些也记录在user表中。如果你指定数据库、表和列级权限,他们被分别记录在db、tables_priv和columns_priv表中。

站.长站

用GRANT和REVOKE比直接修改授权表更容易些,然而,建议你阅读一下《MySQL安全性指南》。这些表异常重要,而且作为一名管理员,你应该理解它们如何超越GRANT和REVOKE语句的功能水平。

站.长站

在下面的章节中,我们将介绍如何设置MySQL用户账号并授权。我们也涉及如何撤权和从授权表中删除用户。 Chinaz

你可能也想考虑使用MySQLACCESS和mysql_setpermission脚本,它是MySQL分发的一部分,它们是Perl脚本,提供GRANT语句的另一种选择设置用户账号。MySQL_setpermission需要安装DBI支持。

Chinaz.com

1、创建用户并授权 Chinaz.com

GRANT语句的语法看上去像这样:

以下为引用的内容:
GRANT privileges (columns)
ON what
TO user IDENTIFIED BY "password"
WITH GRANT OPTION

www.Chinaz.com

要使用该语句,你需要填写下列部分:

中国.站.长站

privileges 站长.站

授予用户的权限,下表列出可用于GRANT语句的权限指定符:

中国站.长.站

上表显示在第一组的权限指定符适用于数据库、表和列,第二组数管理权限。一般,这些被相对严格地授权,因为它们允许用户影响服务器的操作。第三组权限特殊,ALL意味着“所有权限”,UASGE意味着无权限,即创建用户,但不授予权限。 Www^Chinaz^com

columns

中国.站长站

权限运用的列,它是可选的,并且你只能设置列特定的权限。如果命令有多于一个列,应该用逗号分开它们。

中国站长.站

what

站长.站

权限运用的级别。权限可以是全局的(适用于所有数据库和所有表)、特定数据库(适用于一个数据库中的所有表)或特定表的。可以通过指定一个columns字句是权限是列特定的。 Www@Chinaz@com

user 中国站长_站,为中文网站提供动力

权限授予的用户,它由一个用户名和主机名组成。在MySQL中,你不仅指定谁能连接,还有从哪里连接。这允许你让两个同名用户从不同地方连接。MySQL让你区分他们,并彼此独立地赋予权限。

中国.站长站

MySQL中的一个用户名就是你连接服......余下全文>>
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/4328.html NewsArticle mysql的权限级别,mysql权限级别 mysql有5个级别的权限,分别是: Clobal Level,Database Level,Table level,Column Level,Routine Level。 1,Clobal Level:它是针对整个mysql数据库服务器的全局权限。对mysql里...
评论暂时关闭