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

可以用两种方式创建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 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()。

创建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访问。

如果你想要让某个用户从给定域的所有机器访问(例如,mydomain.com),你可以在账户名的主机部分使用含‘%'通配符的GRANT语句:

代码如下:

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

MySQL删除用户账户

使用DROP USER,您可以取消一个账户和其权限,操作如下:

代码如下:

DROP USER user;

该语句可以删除来自所有授权表的帐户权限记录。

要点:DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。这是有意设计的。

设置账户密码

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

代码如下:

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

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

为账户赋予密码的另一种方法是执行SET PASSWORD语句:

代码如下:

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

只有root等可以更新mysql数据库的用户可以更改其它用户的密码。

如果你没有以匿名用户连接,省略FOR子句便可以更改自己的密码:

代码如下:

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;

(0)

相关推荐

  • mysql root用户的密码修改和消除

    一.密码的修改:使用mysqladmin命令 1.例如你的 root用户现在没有密码,你希望的密码修改为abc,那么命令是:mysqladmin -u root password abc 2.如果你的root现在有密码了,那么修改密码为abc的命令是:mysqladmin -u root -p password youyou 注意,命令回车后会问你旧密码,输入旧密码之后命令完成,密码修改成功. 二.密码的消除 1.以root登录:mysql -u root -p 2.mysql>use mysq

  • MySQL创建用户与授权方法

    注:我的运行环境是widnows xp professional + MySQL5.0 一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码

  • MySql增加用户、授权、修改密码等语句

    1.新建用户. //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> mysql> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub ject) values("localhost","pppadmin",password("passwd"),'','',''); 这样就创建了一个名为

  • mysql创建本地用户及赋予数据库权限的方法示例

    前言 大家在安装 mysql 时通常会生成一个超级用户 root,很多人之后就一直沿用这一个用户,虽然这会很方便,但超级用户权限太大,在所有地方使用它通常是一个安全隐患. 这一点跟操作系统的用户管理也是类似的,多数人贪图方便都直接使用 administrator 或 root 用户,其实是一种不建议的做法. 那么,要如何在 mysql 中创建 root 之外的用户并赋予相应权限呢? 我们直接来看一个示例: CREATE USER 'golden'@'localhost' IDENTIFIED B

  • mysql数据库添加用户及分配权限具体实现

    创建用户并分配权限: 复制代码 代码如下: insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));//创建用户 grant all privileges on dbname.* to 'username'@'%' identified by 'password';//创建用户并分配所有权限 grant select,upd

  • MySQL创建用户与授权及撤销用户权限方法

    MySQL中创建用户与授权的实现方法. 运行环境:widnows xp professional + MySQL5.0 一, 创建用户 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,

  • MySQL数据库下用户及用户权限配置

    问题:使用某大腿写的远程工具管理Mysql数据库时发现所有数据能正常显示,但是无法进行删除.修改等操作. 思路:可以远程读取到数据库里的信息,说明当前主机可以远程连接数据库.却无法进行删除.修改这些操作,说明某些权限并未赋予当前远程用户. 解决方法: 查看当前用户权限 show grants for username 显示当前用户下的权限为:select,insert,update,delete GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED

  • mysql中为用户设置密码的多种方法

    当初次在机器上安装完Mysql时,你可以匿名进行访问数据库或者以不带口令的root身份进入数据库.另外如果你是一个管理员,你还要进行一些用户的建立及授权,这又涉及到设置密码的问题.下面我们就讨论一下如何设置密码: 首先我们应该知道Mysql数据库中的口令存储必须用password()函数加密它.因为在user表中是以加密形式存储口令,而不是作为纯文本.如果你没有加密,直接在数据库中执行以下语句: 复制代码 代码如下: use mysql insert into user (host,user,p

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

    可以用两种方式创建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'@'%' IDE

  • linux下mysql创建新的用户的方法

    1.以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码. 2.创建一个MySQL用户 使用如下命令创建一个用户名和密码分 为"username"和"userpassword"的用户. mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'userpassword'; 一旦用户被创建后,包括加密的密码.权限和资源限制在

  • MySql添加新用户及为用户创建数据库和给用户分配权限方法介绍

    1.添加新用户 只允许本地IP访问 create user 'test'@'localhost' identified by '123456'; 允许外网IP访问 create user 'test'@'%' identified by '123456'; 刷新授权 flush privileges; 2.为用户创建数据库 create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 3.为用户分配权限 授予用户通过外网IP

  • 解决MySQL添加新用户-ERROR 1045 (28000)的问题

    MySQL添加新用户,见文章底部. 按照正常思维,创建用户和设置密码什么的,应该是一个动作完成的.然而事实并非如此. 我每次都是通过在网上找代码来创建MySQL的用户.如果无效,就再搜一段.现在我心累了,必须写个自己的教程. 1,先要连接到MySQL,工具就是在终端上输入mysql.一般来说可以设置几个参数,重要的是-u代表用户,比如root,或者guest,-p代表密码,-h代表地址,如果是localhost,可以省略.例子 mysql --user user --host localhost

  • Windows2008快速创建新用户方法

    默认安装Windows Server 2008是采用系统默认的Administrator系统超级管理员帐户.平时使用系统超级管理员帐户容易遭受病毒木马的攻击,最重要的是无法充分发挥Windows 2008新的安全功能UAC 用户帐户管理.由于Win2008采用全新的用户界面,类似Windows Vista创建新用户的方法有些烦琐.Vista地带告诉你一种新的方法创建系统管理员. 在Windows Server 2008开始菜单中输入 cmd 打开命令提示符,我们输入net user <用户名>

  • mysql 创建root用户和普通用户及修改删除功能

    方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin mysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladmin -u root password oldpass "newpass" 方法3: 用UPDA

  • Linux中创建新用户并赋予指定目录的相关权限

    1 创建用户且指定该用户的根路径和密码 useradd -d /home/mydir -m username 这种方式创建的用户可以使用ssh登录,但只有只读权限可以浏览下载部分文件无法写和修改. 建议通过将用户加入一个组来获得指定路径的权限. 2 设置密码 passwd username 3 用户授权 chown -R username: username /home/ mydir chmod 755 /home/mydir 4 将用户加入到组 将一个用户添加到用户组中,尽量不要直接用(除非确

  • Linux 中锁定和解锁用户帐户的三种方法

    如果你已经在你的组织中实施了某种密码策略,你无需看这篇文章了.但是在这种情况下,如果你给账户设置了 24 小时的锁定期,你需要手动解锁用户帐户. 本教程将帮助你在 Linux 中手动锁定和解锁用户帐户. 这可以通过三种方式使用以下两个 Linux 命令来完成. passwd usermod 为了说明这一点,我们选择 daygeek 用户帐户.让我们看看,怎么一步步来实现的. 请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们的帐户.你可以使用 id 命令检查给定的用户帐户在系统中是否可用

  • Python创建相同值数组/列表的两种方法

    目录 题目要求 解决方法 方法一:使用Python基础语法 方法二:使用numpy包的函数实现 参考资料 总结 题目要求 现在有这样的一个需求:创建一个数组或列表,列表中的所有值是相同的. 解决方法 找到两种解决方法,第一种是使用Python的基础语法,第二种是借助numpy包提供的函数实现.分别为大家进行介绍. 方法一:使用Python基础语法 使用“*”号可以实现列表的创建,使用非常简单,以下示例将会创建长度为20的列表. 另外,不仅可以复制单个元素,还可以实现多个元素的复制,如下示例: 方

随机推荐