当前位置:七道奇文章资讯网站建设网站美工
日期:2010-07-27 10:54:00  来源:本站整理

<b>Mysql成立用户帐户的几种办法总结</b>[网站美工]

赞助商链接



  本文“<b>Mysql成立用户帐户的几种办法总结</b>[网站美工]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1.CREATE USER
CREATE USER user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ...CREATE USER用于成立新的MySQL账户.要利用CREATE USER,您必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限.关于每个账户,CREATE USER会在没有权限的mysql.user表中成立一个新记录.假如 账户已经存在,则呈现错误.

利用自选的IDENTIFIED BY子句,可认为账户给定一个密码.user值和 密码的给定办法和GRANT语句一样.分外是,要在纯文本中指定密码,需忽视PASSWORD关键词.要把 密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD.

2.利用GRANT语句
最好的办法是利用GRANT语句,因为这样更切确,错误少.从MySQL 3.22.11起供应了GRANT;它的主要用处是来给帐户受权的,但也可用来成立新帐户并同时受权.注意:当mysql运行于no_auto_create_user时要供应新建用户的密码,不然不能创新用户.
下面的示例阐明若何利用MySQL客户端程序来设置新用户.
首先,利用MySQL程序以MySQL root用户来衔接服务器:

shell> MySQL –user=root MySQL

假如你为root账户指定了密码,还需求为该MySQL号令和本节中的别的号令供应–password或-p选项.

以root衔接到服务器上后,可以增添新账户.下面的语句利用GRANT来设置四个新账户:

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘monty’@'localhost’

-> IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘monty’@'%’

-> IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION;

mysql> GRANT RELOAD,PROCESS ON *.* TO ‘admin’@'localhost’;

mysql> GRANT USAGE ON *.* TO ‘dummy’@'localhost’;

用GRANT语句成立的账户有下面的属性:

· 此中两个账户有相同的用户名monty和密码some_pass.两个账户均为超级用户账户,具有完好的权限可以做任何事情.一个账户(‘monty’@'localhost’)只用于从本机衔接时.另一个账户(‘monty’@'%’)可用于从别的主机衔接.请注意monty的两个账户必须能从任何主机以monty衔接.没有localhost账户,当monty从本机衔接时,mysql_install_db成立的localhost的匿名用户账户将占先.后果是,monty将被视为匿名用户.缘由是匿名用户账户的Host列值比’monty’@'%’账户更具体,这样在user表排序次序中排在前面.(user表排序的谈论要参考mysql手册).

· 一个账户有效户名admin,没有密码.该账户只用于从本机衔接.授与了RELOAD和PROCESS管理权限.这些权限答应admin用户履行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx号令,以及mysqladmin processlist.未授与拜候数据库的权限.你可以通过GRANT语句增添此类权限.

· 一个账户有效户名dummy,没有密码.该账户只用于从本机衔接.未授与权限.通过GRANT语句中的USAGE权限,你可以成立账户而不授与任何权限.它可以将全部全局权限设为’N'.假定你将在今后将具体权限授与该账户.

3.直接操作MySQL受权表
除了GRANT,你可以直接用INSERT语句成立相同的账户,然后利用FLUSH PRIVILEGES奉告服务器重载受权表.

shell> mysql –user=root mysql

mysql> INSERT INTO user -> VALUES('localhost','monty',PASSWORD('some_pass'), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');mysql> INSERT INTO user -> VALUES('%','monty',PASSWORD('some_pass'), -> '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;当你用INSERT成立账户时利用FLUSH PRIVILEGES的缘由是奉告服务器重读受权表.不然,只有重启服务器后更改方会被注意到.利用 GRANT,则不需求利用FLUSH PRIVILEGES.

用INSERT利用PASSWORD()函数是为了加密密码.GRANT语句为你加密密码,因此不需求PASSWORD().

‘Y’值启用账户权限.关于admin账户,还可以利用越发可读的INSERT扩大的语法(利用SET).

在为dummy账户的INSERT语句中,只有user表中的Host、User和Password列记录为指定的值.没有一个权限列为显式设置,因此MySQL将它们均指定为 默许值’N'.这样平等于GRANT USAGE的操作.

请注意要设置超级用户账户,只需求成立一个权限列设置为’Y'的user表条目.user表权限为全局权限,因此别的 受权表不再需求条目.

4.举几个利用grant成立帐户和受权的例子
下面的例子成立3个账户,答应它们拜候专用数据库.每个账户的用户名为custom,密码为obscure.

要想用GRANT成立账户,利用下面的语句:

shell> MySQL --user=root MySQLshell> mysql --user=root mysqlmysql> 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语句直接改正 受权表:

shell> mysql --user=root mysqlmysql> INSERT INTO user (Host,User,Password) -> VALUES('localhost','custom',PASSWORD('obscure'));mysql> INSERT INTO user (Host,User,Password) -> VALUES('whitehouse.gov','custom',PASSWORD('obscure'));mysql> INSERT INTO user (Host,User,Password) -> VALUES('server.domain','custom',PASSWORD('obscure'));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('server.domain','customer','custom', -> 'Y','Y','Y','Y','Y','Y');mysql> FLUSH PRIVILEGES; 前3个INSERT语句在user表中加入条目,答应用户custom从各种主机用给定的密码举行衔接,但不授与全局权限(全部权限设置为 默许值’N').背面3个INSERT语句在user表中加入条目,为custom授与bankaccount、expenses和customer数据库权限,但只能从符合的主机拜候.普通若直接改正 受权表,则应奉告服务器用FLUSH PRIVILEGES重载受权表,使权限更改见效.

假如你想要让某个用户从给定域的全部机械拜候(比方,mydomain.com),你可以在账户名的主机部份利用含’%'通配符的GRANT语句:

mysql> GRANT ... -> ON *.* -> TO 'myname'@'%.mydomain.com' -> IDENTIFIED BY 'mypass';要想通过直接改正受权表来实现:

mysql> INSERT INTO user (Host,User,Password,...) -> VALUES('%.mydomain.com','myname',PASSWORD('mypass'),...);mysql> FLUSH PRIVILEGES;

5.成立账户的别的办法是利用MySQL账户管理功效的第三方程序.phpMyAdmin便是一个程序.
从MySQL删除用户账户
要想移除账户,应利用DROP USER语句
 


  以上是“<b>Mysql成立用户帐户的几种办法总结</b>[网站美工]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <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 .