mysql设置php权限管理_MySQL设置访问权限实例详解

设置访问权限

在创建用户账号后,必须接着分配访问权限。新创建的用户账号没有访问权限。它们能登录MySQL,但不能看到数据,不能执行任何数据库操作。

为看到赋予用户账号的权限,使用 SHOW GRANTS FOR ,如下所示:

输入:SHOW GRANTS FOR bforta;

输入:

5c07338b0e1a13be438882677ee0f5ad.png

分析:输出结果显示用户 bforta 有一个权限 USAGE ON *.* 。 USAGE 表示根本没有权限(我知道,这不很直观),所以,此结果表示在任意数据库和任意表上对任何东西没有权限。

用户定义为 user@host MySQL的权限用用户名和主机名结合定义。如果不指定主机名,则使用默认的主机名 % (授予用户访问权限而不管主机名)。

为设置权限,使用 GRANT 语句。 GRANT 要求你至少给出以下信息:

1.要授予的权限;

2.被授予访问权限的数据库或表;

3.用户名。

以下例子给出 GRANT 的用法:

输入:GRANT SELECT ON crashcourse.*TO bforta;

分析:此 GRANT 允许用户在 crashcourse.* ( crashcourse 数据库的所有表)上使用 SELECT 。通过只授予 SELECT 访问权限,用户 bforta对 crashcourse 数据库中的所有数据具有只读访问权限。

SHOW GRANTS 反映这个更改:

输入:SHOW GRANTS FOR bforta;

输出:

ea11f9d2f1126c24d91ee95b42dd6668.png

分析:每个 GRANT 添加(或更新)用户的一个权限。MySQL读取所有授权,并根据它们确定权限。

GRANT 的反操作为 REVOKE ,用它来撤销特定的权限。下面举一个例子:

输入:REVOKE SELECT ON crashcourse.* FROM bforta;

分析:这条 REVOKE 语句取消刚赋予用户 bforta 的 SELECT 访问权限。被撤销的访问权限必须存在,否则会出错。

GRANT 和 REVOKE 可在几个层次上控制访问权限:

1.整个服务器,使用 GRANT ALL 和 REVOKE ALL;

2.整个数据库,使用 ON database.*;

3.特定的表,使用 ON database.table;

4.特定的列;

5.特定的存储过程。

下表列出可以授予或撤销的每个权限。

e7643e50d8d91f669beef7f3afff4d20.png

349f88fded5da9d8ba4a398c2b4f609c.png

使用 GRANT 和 REVOKE ,再结合表中列出的权限,你能对用户可以就你的宝贵数据做什么事情和不能做什么事情具有完全的控制。

未来的授权 在使用 GRANT 和 REVOKE 时,用户账号必须存在,但对所涉及的对象没有这个要求。这允许管理员在创建数据库和表之前设计和实现安全措施。

这样做的副作用是,当某个数据库或表被删除时(用 DROP 语句),相关的访问权限仍然存在。而且,如果将来重新创建该数据库或表,这些权限仍然起作用。

简化多次授权可通过列出各权限并用逗号分隔,将多条GRANT 语句串在一起,如下所示:GRANT SELECT,INSERT ON crashcourse.* TO bforta;

【相关推荐】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值