mysql 权限控制笔记

MySQL 存取控制包含2个阶段:

  • 阶段1:服务器检查是否允许你连接。
  • 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你对表有SELECT权限或对数据库有DROP权限。

参考 : 5.8. MySQL用户账户管理

1.权限查看

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> mysql >  show grants  for   ' root ' @ ' localhost '  ;
+ -- -------------------------------------------------------------------+
|  Grants  for  root @localhost                                             |
+ -- -------------------------------------------------------------------+
|   GRANT   ALL   PRIVILEGES   ON   * . *   TO   ' root ' @ ' localhost '   WITH   GRANT   OPTION   |
+ -- -------------------------------------------------------------------+
1  row  in   set  ( 0.06  sec)


2.权限设置
5.8.2. 向MySQL增加新用户账户

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> mysql >   GRANT   ALL   PRIVILEGES   ON   * . *   TO   ' monty ' @ ' localhost '
    
->      IDENTIFIED  BY   ' some_pass ' ;

mysql
>   GRANT   ALL   PRIVILEGES   ON   * . *   TO   ' monty ' @ ' % '
    
->      IDENTIFIED  BY   ' some_pass '   WITH   GRANT   OPTION ;
   其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。


mysql >   GRANT  RELOAD,PROCESS  ON   * . *   TO   ' admin ' @ ' localhost ' ;
该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reloadmysqladmin refreshmysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。

mysql
>   GRANT  USAGE  ON   * . *   TO   ' dummy ' @ ' localhost ' ;
    一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。


下面的例子创建3个账户,允许它们访问专用数据库。每个账户的用户名为custom,密码为obscure。

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
mysql
>   GRANT   SELECT , INSERT , UPDATE , DELETE , CREATE , DROP
    
->       ON  bankaccount. *
    
->       TO   ' custom ' @ ' localhost '
    
->      IDENTIFIED  BY   ' obscure ' ;

mysql
>   GRANT   SELECT , INSERT , UPDATE , DELETE , CREATE , DROP
    
->       ON  expenses. *
    
->       TO   ' custom ' @ ' whitehouse.gov '
    
->      IDENTIFIED  BY   ' obscure ' ;

mysql
>   GRANT   SELECT , INSERT , UPDATE , DELETE , CREATE , DROP
    
->       ON  customer. *
    
->       TO   ' custom ' @ ' server.domain '
    
->      IDENTIFIED  BY   ' obscure ' ;

这3个账户可以用于:

·         第1个账户可以访问bankaccount数据库,但只能从本机访问。

·         第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。

·         第3个账户可以访问customer数据库,但只能从主机server.domain访问。

要想不用GRANT设置custom账户,使用INSERT语句直接修改 授权表:

5.8.3. 从MySQL删除用户账户

DROP USER user;

转载:http://www.blogjava.net/Good-Game/archive/2008/04/29/197206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值