MySQL创建新用户、增加账户的2种方法及使用实例

作者:分分快三全天计划网站

示例

例如,在 mysql.user 表中有一行记录的User列和Host列的值分别为'bob''%.loc.gov',能够写相符如下语句:

SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');

MySQL成立新客户、扩大账户的2种艺术及运用实例,mysql2种

能够用两种办法创立MySQL账户:

1.使用GRANT语句
2.从来操作MySQL授权表

最棒的主意是运用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;

里面五个账户有相似的顾客名monty和密码some_pass。七个账户均为最好顾客账户,具备完全的权柄能够做别的业务。贰个账户 ('monty'@'localhost'卡塔尔(قطر‎只用于从本机连接时。另三个账户('monty'@'%'卡塔尔国可用于从任何主机连接。请小心monty的四个账户必需能从此外主机以monty连接。

假若未有localhost账户,当monty从本机连接时,mysql_install_db创制的localhost的无名氏顾客账户将超过。结果是,monty将被视为无名顾客。原因是无名氏顾客账户的Host列值比'monty'@'%'账户更宛在方今,那样在user表排序依次中排在前面。

创设管理客户,不予以数据库权限:

复制代码 代码如下:

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

一个账户有客户名admin,未有密码。该账户只用于从本机连接。付与了RELOAD和PROCESS管理权限。这么些权限允许admin客户奉行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,甚至mysqladmin processlist。未给与访谈数据库的权柄。你能够由此GRANT语句增加此类权限。

三个账户有客户名dummy,未有密码。该账户只用于从本机连接。未予以权限。通过GRANT语句中的USAGE权限,你能够创设账户而不授予任何权力。它能够将富有全局权限设为'N'。假定你就要后头将现实权限赋予该账户。

复制代码 代码如下:

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

除开GRANT,你可以一贯用INSERT语句创设相通的账户,然后接纳FLUSH PEscortIVILEGES告诉服务珍视载授权表:

复制代码 代码如下:

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 P福睿斯IVILEGES的案由是告诉服务珍视读授权表。不然,唯有重启服务器后改革方会被注意到。使用 GRANT,则无需使用FLUSH P锐界IVILEGES。

用INSERT使用PASSWOLX570D(卡塔尔(قطر‎函数是为着加密密码。GRANT语句为您加密密码,由此没有必要PASSWOEnclaveD(卡塔尔(英语:State of Qatar)。

成立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个账户能够用于:

第四个账户能够访谈bankaccount数据库,但一定要从本机访问。
第二个账户能够访谈expenses数据库,但只可以从主机whitehouse.gov访谈。
第2个账户能够访问customer数据库,但只可以从主机server.domain访谈。

假使你想要让有些顾客从给定域的具有机器访问(譬如,mydomain.com卡塔尔,你能够在账户名的主机部分使用含‘%'通配符的GRANT语句:

复制代码 代码如下:

mysql> GRANT ...  ON *.* TO 'myname'@'%.mydomain.com'  IDENTIFIED BY 'mypass';

MySQL删除顾客账户

采取DROP USE翼虎,您能够撤除四个账户和其权力,操作如下:

复制代码 代码如下:

DROP USER user;

该语句能够去除来自具有授权表的帐户权限记录。

宗旨:DROP USESportage不可能自动关闭别的张开的顾客对话。并且,假如顾客有开垦的对话,那个时候收回客商,则下令不会立竿见影,直到客商对话被关闭后才生效。生龙活虎旦对话被关门,客户也被吊销,此客户再一次策动登陆时将会失败。那是蓄意设计的。

安装账户密码

用mysqladmin命令在命令行内定密码

复制代码 代码如下:

shell> mysqladmin -u user_name -h host_name password "newpwd"

该命令重设密码的账户为user表内相配User列的user_name和Host列你发起连接的客商端的记录。

为账户予以密码的另黄金时代种办法是实践SET PASSWO宝马X5D语句:

复制代码 代码如下:

mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');

独有root等得以立异mysql数据库的客商能够纠正其余客商的密码。

假定您从未以无名客户连接,省略FORAV4子句便可以改正本人的密码:

复制代码 代码如下:

mysql> SET PASSWORD = PASSWORD('biscuit');

您还足以在大局等级使用GRANT USAGE语句(在*.*卡塔尔来钦赐某个账户的密码而不影响账户当前的权限:

复制代码 代码如下:

mysql> GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';

平常景象下最佳使用上述格局来钦点密码

要想在创立新账户时成立密码,在Password列提供二个值:

复制代码 代码如下:

mysql> INSERT INTO user (Host,User,Password) VALUES('%','jeffrey',PASSWORD('biscuit'));
 mysql> FLUSH PRIVILEGES;

要想改换原来就有账户的密码,使用UPDATE来安装Password列值:

复制代码 代码如下:

mysql> UPDATE user SET Password = PASSWORD('bagel')  WHERE Host = '%' AND User = 'francis';
mysql> FLUSH PRIVILEGES;

能够用二种艺术开创MySQL账户: 1.施用GRANT语句 2.向来操作MySQL授权表 最佳的方法...

原文:https://mariadb.com/kb/en/library/set-password/
笔者付诸到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/set-password/

描述

SET PASSWORD言辞用于为四个已存在的MariaDB客户分配密码。

大器晚成经密码是行使PASSWORD()函数或OLD_PASSWORD()函数钦点的,则供给给定待加密的公开字符。假若密码不接收其它函数钦点,则交由的密码值必须是生龙活虎度加密过的密文,就像PASSWORD()回去的值同样。

OLD_PASSWORD()函数只应在MariaDB/MySQL客商端版本极度老(< 4.0.0卡塔尔国时才使用。

万一不给定 FOR 子句,该语句将为当下客户设置密码。任何利用非无名账户连接到服务端的客商端都可觉得其本人客户设置密码。

给定 FOR 子句时,该语句将为钦赐客商设置密码。独有对 mysql 数据库具备 UPDATE 权限的客户端手艺推行此操作。钦命顾客时的格式为 user_name@host_name,其中 user_namehost_namemysql.user 表中某行的User列和Host列。

PASSWORD()函数再次回到的是贰个41字符的hash值。

PASSWORD()的参数部分以至想要给MariaDB客商端设定的密码长度可以为私行长度。

语法

SET PASSWORD [FOR user] =
    {
        PASSWORD('some password')
      | OLD_PASSWORD('some password')
      | 'encrypted password'
    }

本文为mariadb官方手册:SET PASSWOSportageD的译文。

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划