mysql所有任务为灰色_MySQL权限体系任务事理

作者:天极软件 来历:天极软件

MySQL权限体系保证全部的用户可以严格地做他们假定被容许做的任务。当你连接一个MySQL管事器时, 你的身份由你从那连接的主机和你指定的用户名来决意,体系凭据你的身份和你想做什么来授予权限。

MySQL在认定身份中考虑你的主机名和用户名字,是因为有很小的缘由假定一个给定的用户在因特网上属于统一集体。譬喻,用户从whitehouse.gov连接的bill不必和从mosoft.com连接bill是统一集体。 MySQL经由容许你区分在差其他主机上恰巧有异常名字用户来处理它:你可以对从whitehouse.gov连接授与bill一个权限集,而为从microsoft.com的连接授予一个差其他权限集。

MySQL存取控制包括2个阶段:阶段1:管事器查抄你能否容许连接。

阶段2:假定你能连接,管事器查抄你收回的每个请求。看你能否有足够的权限实施它。譬喻,假设你从数据库中一个表精选(select)行或从数据库甩掉一个表,管事器确定你对表有select权限或对数据库有drop权限。

管事器在存取控制的两个阶段运用在mysql的数据库中的user、db和host表,在这些受权表中字段如下:

表称号

user

db

host

局限字段

Host

Host

Host

User

Db

Db

Password

User

权限字段

Select_priv

Select_priv

Select_priv

Insert_priv

Insert_priv

Insert_priv

Update_priv

Update_priv

Update_priv

Delete_priv

Delete_priv

Delete_priv

Index_priv

Index_priv

Index_priv

Alter_priv

Alter_priv

Alter_priv

Create_priv

Create_priv

Create_priv

Drop_priv

Drop_priv

Drop_priv

Grant_priv

Grant_priv

Grant_priv

Reload_priv

Shutdown_priv

Process_priv

File_priv

对存取控制的第二阶段(请求证实),假设请求触及表,管事器可以别的参考tables_priv和columns_priv表。这些表的字段如下:

表称号

tables_priv

columns_priv

局限字段

Host

Host

Db

Db

User

User

Table_name

Table_name

Column_name

权限字段

Table_priv

Column_priv

Column_priv

其他字段

Timestamp

Timestamp

Grantor

每个受权表包括局限字段和权限字段。

局限字段决意表中每个条目的局限,即,条目适用的上下文。譬喻, 一个user表条目的Host和User值为'thomas.loc.gov'和'bob'将被用于证实来自主机thomas.loc.gov的bob对管事器的连接。异常,一个db表条目的Host、User和Db字段的值是'thomas.loc.gov'、'bob'和'reports'将用在bob从主机联接thomas.loc.gov存取reports数据库的时候。 tables_priv和columns_priv表包括局限字段,指出每个条目适用的表或表/列的组合。

关于查抄存取的用处,比拟Host值是忽略年夜小写的。User、Password、Db和Table_name值是区分年夜小写的。Column_name值在MySQL3.22.12或往后版本是忽略年夜小写的。

权限字段指出由一个表条目授予的权限,即,可实施什么操作。管事器组合各类的受权表的信息组成一个用户权限的齐全描绘。为此运用的规则在6.8 存取控制, 阶段2:请求证实描绘。

局限字段是字符串,如下所述;每个字段的缺省值是空字符串:

字段名

典范榜样

Host

CHAR(60)

User

CHAR(16)

Password

CHAR(16)

Db

CHAR(64)

(tables_priv和columns_priv表为CHAR(60))

在user、db和host表中,全部权限字段被声明为ENUM('N','Y')--每一个都可有值'N'或'Y',并且缺省值是'N'.

在tables_priv和columns_priv表中,权限字段被声明为SET字段:

表名

字段名

可以的纠剖析员

tables_priv

Table_priv

'Select', 'Insert', 'Update', 'Delete', 'Create', 'Drop', 'Grant', 'References', 'Index', 'Alter'

tables_priv

Column_priv

'Select', 'Insert', 'Update', 'References'

columns_priv

Column_priv

'Select', 'Insert', 'Update', 'References'

重年夜地说,管事器运用多么的受权表:user表局限字段决意能否容许或谢绝到来的连接。关于容许的连接,权限字段指出用户的全局(超级用户)权限。

db和host表一同运用:

db表局限字段决意用户能从哪个主机存取哪个数据库。权限字段决意容许哪个操作。

当你想要一个给定的db条目运用于多少主机时,host表作为db表的扩展被运用。譬喻,假设你想要一个用户能在你的网络从多少主机运用一个数据库,在用户的db表的Host条目设为空值,然后将那些主机的每一个移入host表。这个机制仔细描绘在6.8 存取控制, 阶段2:请求证实。

tables_priv和columns_priv表类似于db表,但是更细腻:他们在表和列级运用而非在数据库级。

把稳管理权限(reload, shutdown, 等等)仅在user表中被指定。这是因为管感性操作是管事器自身的操作并且不是特天命据库,是以没有起因在其他受权表中列出多么的权限。理想上,只需求请教user表来决意你能否执行一个管理操作。

file权限也仅在user表中指定。它不是管感性权限,但你读或谢在管事器主机上的文件的的手腕独立于你正在存取的数据库。

当mysqld管事器启动时,读取一次受权表内容。对受权表的更改生效在6.9 权限更改何时生效描绘。

当你改削受权表的内容时,确保你按你想要的体式花样更改权限设置是一个好主见。为扶直诊断问题成果,见6.13 “存取谢绝惹起”错误的缘由。关于悄然问题成果上的忠告,见6.14 怎样对使MySQL悄然匹敌解密好手。

一个有效的诊断工具是mysqlaccess脚本,由Carlier Yves 供给给MySQL分发。运用--help选项调用mysqlaccess查明它怎样任务。把稳:mysqlaccess仅用user、db和host表仅查抄存取。它不查抄表或列级权限。

版权声明:

原创作品,容许转载,转载时请务必以超链接体式花样标明文章 原始来因 、作者信息和本声明。否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值