zoukankan      html  css  js  c++  java
  • 【转】关于MySQL权限

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

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

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

    1.权限查看

    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增加新用户账户

    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。


    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/Skynet/archive/2008/10/01/232017.html

    赠人玫瑰
    手留余香

    我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

  • 相关阅读:
    Python学习第15天_模块
    Python学习第14天_文件读取写入
    Python学习第13天_练习(图书馆的创建)
    Python学习第12天_类
    Python学习第11天_参数
    Python学习第10天_函数
    Python学习第九天_模块的应用
    Android Bluetooth HIDL服务分析
    Mac下CLion配置Google GTest小结
    MacOS通过homebrew安装老版本的软件
  • 原文地址:https://www.cnblogs.com/haochuang/p/2643427.html
Copyright © 2011-2022 走看看