`
hlidc
  • 浏览: 30317 次
  • 性别: Icon_minigender_2
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

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目录找到这些实用程序。


温情提示:有服务器的问题及服务器租用、托管需求的朋友联系www.163ns.com QQ:6041800

联系人:小郑
分享到:
评论

相关推荐

    C++连接mysql数据库的两种方法.docx

    C++连接mysql数据库的两种方法 在 C++ 中连接 mysql 数据库有两种方法,一种是利用 ADO 连接,另一种是利用 mysql 自己的 API 函数进行连接。下面我们将详细介绍这两种方法。 第一种方法:利用 ADO 连接 ADO...

    rhel下安装mysql的两种方法

    ### RHEL 下安装 MySQL 的两种方法 #### 一、背景介绍 在 Red Hat Enterprise Linux (RHEL) 系统上安装 MySQL 数据库是一项常见的任务,适用于多种应用场景,如 Web 应用开发、数据存储等。MySQL 提供了两种主要的...

    VS2013添加MySQL连接完美解决方案

    "VS2013添加MySQL连接完美解决方案"这个标题所指的就是解决这个问题的一种方法。 标题中的“完美解决方案”通常意味着一种全面且可靠的处理方式,能够确保用户在VS2013中顺利地与MySQL数据库进行交互。在这个案例中...

    mysql两种安装文档教程.rar

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,特别是在Web应用程序中。本教程将深入讲解两种常见的MySQL 5.7.x安装方法:二进制包安装和RPM...理解并掌握这两种方法将帮助你在不同环境中快速部署MySQL服务器。

    Centos5.8安装asterisk并配置mysql用户表

    然后,在Asterisk配置文件sip.conf中添加用户信息,并使用Mysql数据库连接实现在用户表中的数据。 Asterisk配置 在安装和配置Mysql用户表后,需要配置Asterisk以使用Mysql数据库。可以在sip.conf文件中添加用户...

    mysql版本升级方法

    ### MySQL版本升级方法详解 #### 一、背景与概述 MySQL作为一款广泛使用的开源关系型数据库管理系统,在实际应用中扮演着至关重要的角色。随着时间的推移和技术的发展,MySQL的新版本不断发布,修复了旧版本中存在...

    mysql 重置数据库密码方法

    本文将介绍两种 MySQL 数据库密码重置的方法。 方法一:跳过用户验证 mysql.exe 和 mysqld.exe 是 MySQL 数据库的两个关键文件。为了重置密码,我们需要首先找到这两个文件所在的文件夹。然后,打开 cmd 命令提示...

    MySQL实现创建存储过程并循环添加记录的方法

    在MySQL数据库中,存储过程是一种预编译的SQL语句集合,它可以封装一系列的操作,用于执行复杂的业务逻辑。创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在...

    用JSP+MySQL做的用户管理系统

    系统区分了用户和管理员两种角色,这涉及到权限控制的概念。用户通常只能查看自己的信息,而管理员则具有更高的权限,可以查看、修改所有用户的信息,甚至执行删除操作。这种角色和权限的划分是通过在数据库中为每个...

    c++连接mysql数据库的两种方法(ADO连接和mysql api连接)

    以上两种方法各有优势:ADO连接易于在多种数据库间切换,但依赖于ODBC驱动;而MySQL API直接与MySQL数据库交互,更为高效,但不具备跨数据库的灵活性。在实际开发中,根据具体需求选择合适的连接方法非常关键。此外...

    MYSQL忘记密码解决方法

    为了解决这个问题,我们可以使用两种方法来恢复MYSQL的密码。 方法一:使用--skip-grant-tables参数启动MYSQL 在这个方法中,我们需要以系统管理员身份登陆系统,然后打开 cmd,输入"net start"命令来查看MYSQL...

    weblogic 9.0中mysql数据源的配置方法

    通过上述两种方法,你可以成功地在Weblogic 9.0环境中配置MySQL数据源。无论采用哪种方式,都需要确保MySQL服务器已经正确启动,并且能够被Weblogic服务器正确识别和访问。此外,还需要注意版本兼容性问题,确保所...

    mysql.zip_MYSQL_用户管理系统

    本项目“mysql.zip_MYSQL_用户管理系统”显然基于MySQL构建了一个用户管理的图书管理系统,提供了管理员和用户两种不同的访问权限。 首先,我们要了解MySQL的基本概念。MySQL的核心特性包括ACID(原子性、一致性、...

    vsftp使用mysql实现虚拟用户访问

    在IT领域,特别是网络服务与安全配置中,利用vsFTPd结合MySQL数据库实现虚拟用户的访问控制是一种常见且高效的方法。这种方法不仅增强了FTP服务的安全性,同时也提供了更灵活的用户管理和资源分配方式。以下是对如何...

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

    有两种方式创建用户,一种是限制用户只能从本地主机(localhost)访问,另一种则是允许从任何远程地址(%)访问。 - 仅限本地IP访问: ```sql CREATE USER 'test'@'localhost' IDENTIFIED BY '123456'; ``` 在这里...

    Linux安装mysql

    在 Linux 系统中安装 MySQL 数据库可以通过两种方式,一种是通过下载 MySQL 的安装包,然后解压并安装;另一种是通过使用包管理器来安装。文章中使用的就是第一种方式,下载 MySQL 的安装包,然后解压并安装。 知识...

    mysql创建用户及授权.pdf

    在 MySQL 中,可以使用两种方法创建新用户: 1. 使用 MySQL 命令行创建新用户,例如: ``` CREATE USER 'mindoc_db_read'@'%' IDENTIFIED BY 'mindoc_db_read@123'; ``` 这条命令将创建一个名为 `mindoc_db_read` ...

    MySQL8.0两种安装教程---含问题解决方案.docx

    ### MySQL 8.0 两种安装...通过以上两种方法,您可以根据自身需求和技能水平选择最适合您的安装方式。无论是MSI安装还是压缩包安装,都旨在提供高效稳定的MySQL服务。希望本文能帮助您顺利完成MySQL 8.0的安装与配置。

Global site tag (gtag.js) - Google Analytics