当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-01-25 22:43:00  来源:本站整理

<b>MySQL数据库顶用GRANT语句增添新用户</b>[MySQL防范]

赞助商链接



  本文“<b>MySQL数据库顶用GRANT语句增添新用户</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
 

有2个差别的办法增添用户:通过利用GRANT语句或通过直接操作MySQL受权表.对比好的办法是利用GRANT语句,因为他们是更简明并且仿佛错误少些.

下面的例子显示出若何利用MySQL客户安装新用户.这些例子假定权限已缺省被安装.这意味着为了改变,你必须在MySQL正在运行同一台机械上,你必须作为MySQL root用户衔接,并且root用户必须对MySQL数据库有insert权限和reload管理权限.别的,假如你改变了root用户口令,你必须以下的MySQL号令指定它.

你可以通过发出GRANT语句增添新用户:

 

shell> mysql --user=root mysql 
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost 
      IDENTIFIED BY 'something' WITH GRANT OPTION; 
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" 
      IDENTIFIED BY 'something' WITH GRANT OPTION; 
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost; 
mysql> GRANT USAGE ON *.* TO dummy@localhost;

这些GRANT语句安装3个新用户:

monty:可以从任何地方衔接服务器的一个完好的超级用户,但是必须利用一个口令('something'做这个.注意,我们必须对monty@localhost和monty@"%"发出GRANT语句.假如我们增添localhost条目,对localhost的匿名用户条目在我们从本地主机衔接接时由mysql_install_db成立的条目将优先考虑,因为它有更特定的Host字段值,所以以user表布列次序看更早到来.

admin:可以从localhost没有一个口令举行衔接并且被授与reload和process管理权限的用户.这答应用户履行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*号令,还有mysqladmin processlist.没有授与数据库有关的权限.他们能在今后通过发出另一个GRANT语句受权.

dummy:可以不用一个口令衔接的一个用户,但是只能从本地主机.全局权限被设置为'N'--USAGE权限范例答应你无需权限便可设置一个用户.它假定你将在今后授与数据库相关的权限.

你也可以直接通过发出INSERT语句增添一样的用户存失信息,然后奉告服务器再次装入受权表:

 

shell> mysql --user=root mysql 
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'), 
        'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') 
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'), 
        'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y') 
mysql> INSERT INTO user SET Host='localhost',User='admin', 
         Reload_priv='Y', Process_priv='Y'; 
mysql> INSERT INTO user (Host,User,Password) 
            VALUES('localhost','dummy',''); 
mysql> FLUSH PRIVILEGES;

取决于你的MySQL版本,对上述,你大概必须利用一个差别数目'Y'值(在3.22.11从前的版本有更少的权限列).对admin用户,只用在3.22.11开始的版本具有的越发可读的INSERT扩大的语法.

注意,为了设置一个超级用户,你只需创造一个user表条目,其权限字段设为'Y'.不需求db或host表的条目.

在user表中的权限列不是由最后一个INSERT语句明确设置的(对dummy用户),因此那些列被赋予缺省值'N'.这是GRANT USAGE做的一样的事情.

下列例子增添一个用户custom,他能从主机localhost、server.domain和whitehouse.gov衔接.他只想要从localhost存取bankaccount数据库,从whitehouse.gov存取expenses数据库和从全部3台主机存取customer数据库.他想要从全部3台主机上利用口令stupid.

为了利用GRANT语句设置个用户的权限,运行这些号令:

 

shell> mysql --user=root mysql 
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 
      ON bankaccount.* 
      TO custom@localhost 
      IDENTIFIED BY 'stupid'; 
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 
      ON expenses.* 
      TO custom@whitehouse.gov 
      IDENTIFIED BY 'stupid'; 
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 
      ON customer.* 
      TO custom@'%' 
      IDENTIFIED BY 'stupid';

通过直接改正受权表设置用户权限,运行这些号令(注意,在完毕时FLUSH PRIVILEGES):

 

shell> mysql --user=root mysql 
mysql> INSERT INTO user (Host,User,Password) 
    VALUES('localhost','custom',PASSWORD('stupid')); 
mysql> INSERT INTO user (Host,User,Password) 
    VALUES('server.domain','custom',PASSWORD('stupid')); 
mysql> INSERT INTO user (Host,User,Password) 
    VALUES('whitehouse.gov','custom',PASSWORD('stupid')); 
mysql> INSERT INTO db 
    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, 
    Create_priv,Drop_priv) 
    VALUES 
    ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y'); 
mysql> INSERT INTO db 
    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, 
    Create_priv,Drop_priv) 
    VALUES 
    ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y'); 
mysql> INSERT INTO db 
    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, 
    Create_priv,Drop_priv) 
    VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y'); 
mysql> FLUSH PRIVILEGES;

 

头3个INSERT语句增添user表条目,答应用户custom用给定口令从差别的主机举行衔接,但是没有授与任何答应(全部权限被设置为缺省值'N').后3个INSERT语句增添db表条目,授与custom以bankaccount、expenses和customer数据库权限,但是只能在从精确的主机存取时.普通,在受权表直接被改正时,服务器必须被奉告再次装入他们(用FLUSH PRIVILEGES)以便使权限改正见效.

假如你想要给特定的用户从一个给定的域上的任何机械上存取权限,你可以发出一个以下的GRANT语句:

 

mysql> GRANT ... 
      ON *.* 
      TO myusername@"%.mydomainname.com" 
      IDENTIFIED BY 'mypassword';

为了通过直接改正受权表做一样的事情,这样做:

 

mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername', 
      PASSWORD('mypassword'),...); 
mysql> FLUSH PRIVILEGES;

你也可以利用xmysqladmin、mysql_webadmin乃至xmysql在受权表中插入、改变和更新值.你可以在MySQL的Contrib目录找到这些实用程序.

  以上是“<b>MySQL数据库顶用GRANT语句增添新用户</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .