mysql 用户权限

MySQL的权限类型和级别

MySQL 的4个权限级别:

  • 全局
  • 数据库
3个基本类型的权限:
  • 适合赋予一般用户的权限
  • 适合赋予管理员的权限
  • 特定的权限
任何用户都可以被赋予这3类权限,但根据最少权限原则,最好严格限定只将管理员类型的权限赋予管理员。我们应该只赋予用户他必须使用的数据库和表的权限。应为mysql这个数据库是存放MySQL所有的用户名和密码的地方,所不,不要将此库的权限赋予任何非管理员的用户!
这三类权限的清单如下:



GRANT 命令

GRANT 命令用来创建用户并赋予他们权限。命令格式如下:

GRANT privileges [ colums]
ON item
TO user_name [IDENTIFIED BY ' password']
[REQUIRE ssl_options]
[WITH [GRANT OPTION | limit_option] ]

privileges 
由逗号分开的一组权限。
[colums] 
为每一个列指定权限,多列用逗号分隔
item 
权限应用与的表货数据库;  *.* :将权限应用与所有的数据库,及赋予“全局权限”; dbname.*:将权限赋予数据库中的全部表!dbname.tabame:将权限赋予数据库中的单个表;还可以通过tablename来指定特定的列! 如果在输入命令时正在使用某个数据库,tablename本身将被解释为当前数据库中的一个表。
user_name
用户登录mysql时所使用的名称。user_name中可以包含一主机名,形如:user1@localhost ,user1@souho.com。这是一项非常有用的功能,因为来着不通域的用户经常使用相同的名称。这也提高了安全性,因为可以指定用户从什么地方连接到本机,甚至可以指定他们在特定的地方可以访问哪些表和数据库。
password
该用户的密码
REQUIRE
指定用户是否必须通过加密套接字连接,或者指定其他的SSL选项。
WITH GRANT OPTION 
如指定,表示允许指定的用户向别人授予自己拥有的权限!
我们也可以指定如下所示的WITH子句:
MAX_QUERIES_PER_HOUR n   //  用户每小时可以执行的查询数量
MAX_UPDATES_PER_HOUR n  // 用户每小时可以执行的更新数量
MAX_CONNECTIONS_PER_HOUR n //用户每小时可以连接的数量
在共享系统上限制单个用户的负载是,这些子句非常有用

权限存储在MySQL的5个系统表中,分别是:mysql.user、mysql.db、mysql.host、mysql.tables_priv和mysql.colums_pirv。做为GRANT命令的替代,可以直接修改这些表。

REVOKE 命令

收回用户的权限,格式如下:
REVOKE privileges [( columns)]

ON item

FROM user_name

如果给出了 WITH GRANT OPTION 子句,可以按如下方式撤销它(以及所有其他的权限):

REVOKE All PRIVILEGES,GRANT

FROM user_name


更新权限

对用户权限做过修改后,记得用 flush privileges; 命令来更新权限;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值