当前位置:首页 > 系统运维 > 正文内容

MySQL数据库中如何正确增加新用户权限?

a8116255316年前 (2010-06-10)系统运维13

此文章主要向大家讲述的是在MySQL数据库中增加新用户权限的实际操作流程,我在一个信誉度很好的网站找到一个关于MySQL数据库中增加新用户权限的实际操作流程的资料,拿出来供大家分享。

有2个不同的 *** 增加用户:通过使用GRANT语句或通过直接操作MySQL(和PHP搭配之更佳组合)授权表。比较好的 *** 是使用GRANT语句,因为他们是更简明并且好像错误少些。

下面的例子显示出如何使用MySQL(和PHP搭配之更佳组合)客户安装新用户。这些例子假定权限根据以前的章节描述的缺省被安装。这意味着为了改变,你必须在MySQL(和PHP搭配之更佳组合)d正在运行同一台机器上,你必须作为MySQL(和PHP搭配之更佳组合) root用户连接,并且root用户必须对MySQL数据库有insert权限和reload管理权限。另外,如果你改变了root用户口令,你必须如下的MySQL(和PHP搭配之更佳组合)命令指定它。

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

shell> MySQL(和PHP搭配之更佳组合) --user=root MySQL(和PHP搭配之更佳组合)

MySQL(和PHP搭配之更佳组合)> GRANT ALL PRIVILEGES ON *.* TO monty@localhost

IDENTIFIED BY 'something' WITH GRANT OPTION;

MySQL(和PHP搭配之更佳组合)> GRANT ALL PRIVILEGES ON *.* TO monty@"%"

IDENTIFIED BY 'something' WITH GRANT OPTION;

MySQL(和PHP搭配之更佳组合)> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;

MySQL(和PHP搭配之更佳组合)> GRANT USAGE ON *.* TO dummy@localhost;

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

monty

可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令('something'做这个。注意,我们必须对monty@localhost和monty@"%"发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由MySQL(和PHP搭配之更佳组合)_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以user表排列顺序看更早到来。

admin

可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。这允许用户执行MySQL(和PHP搭配之更佳组合)admin reload、MySQL(和PHP搭配之更佳组合)admin refresh和MySQL(和PHP搭配之更佳组合)admin flush-*命令,还有MySQL(和PHP搭配之更佳组合)admin processlist。没有授予MySQL数据库有关的权限。他们能在以后通过发出另一个GRANT语句授权。

dummy

可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为'N'--USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予MySQL数据库相关的权限。

你也可以直接通过发出INSERT语句增加同样的用户存取信息,然后告诉服务器再次装入授权表:

shell> MySQL(和PHP搭配之更佳组合) --user=root MySQL(和PHP搭配之更佳组合)

MySQL(和PHP搭配之更佳组合)> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),

'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')

MySQL(和PHP搭配之更佳组合)> INSERT INTO user VALUES('%','monty',PASSWORD('something'),

'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')

MySQL(和PHP搭配之更佳组合)> INSERT INTO user SET Host='localhost',User='admin',

Reload_priv='Y', Process_priv='Y';

MySQL(和PHP搭配之更佳组合)> INSERT INTO user (Host,User,Password)

VALUES('localhost','dummy','');

MySQL(和PHP搭配之更佳组合)> FLUSH PRIVILEGES;

取决于你的MySQL(和PHP搭配之更佳组合)版本,对上述,你可能必须使用一个不同数目'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存取MySQL数据库,从whitehouse.gov存取expenses数据库和从所有3台主机存取customer数据库。他想要从所有3台主机上使用口令stupid。

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

shell> MySQL(和PHP搭配之更佳组合) --user=root MySQL(和PHP搭配之更佳组合)

MySQL(和PHP搭配之更佳组合)> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON bankaccount.*

TO custom@localhost

IDENTIFIED BY 'stupid';

MySQL(和PHP搭配之更佳组合)> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON expenses.*

TO custom@whitehouse.gov

IDENTIFIED BY 'stupid';

MySQL(和PHP搭配之更佳组合)> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON customer.*

TO custom@'%'

IDENTIFIED BY 'stupid';

通过直接修改授权表设置用户权限,运行这些命令(注意,在结束时FLUSH PRIVILEGES):

shell> MySQL(和PHP搭配之更佳组合) --user=root MySQL(和PHP搭配之更佳组合)

MySQL(和PHP搭配之更佳组合)> INSERT INTO user (Host,User,Password)

VALUES('localhost','custom',PASSWORD('stupid'));

MySQL(和PHP搭配之更佳组合)> INSERT INTO user (Host,User,Password)

VALUES('server.domain','custom',PASSWORD('stupid'));

MySQL(和PHP搭配之更佳组合)> INSERT INTO user (Host,User,Password)

VALUES('whitehouse.gov','custom',PASSWORD('stupid'));

MySQL(和PHP搭配之更佳组合)> 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(和PHP搭配之更佳组合)> 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(和PHP搭配之更佳组合)> 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(和PHP搭配之更佳组合)> FLUSH PRIVILEGES;

头3个INSERT语句增加user表条目,允许用户custom用给定口令从不同的主机进行连接,但是没有授予任何许可(所有权限被设置为缺省值'N')。后3个INSERT语句增加db表条目,授予custom以bankaccount、expenses和MySQL数据库权限,但是只能在从正确的主机存取时。通常,在授权表直接被修改时,服务器必须被告知再次装入他们(用FLUSH PRIVILEGES)以便使权限修改生效。

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

MySQL(和PHP搭配之更佳组合)> GRANT ...

ON *.*

TO myusername@"%.mydomainname.com"

IDENTIFIED BY 'mypassword';

为了通过直接修改授权表做同样的事情,这样做:

MySQL(和PHP搭配之更佳组合)> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',

PASSWORD('mypassword'),...);

MySQL(和PHP搭配之更佳组合)> FLUSH PRIVILEGES;

你也可以使用xMySQL(和PHP搭配之更佳组合)admin、MySQL(和PHP搭配之更佳组合)_webadmin甚至xMySQL(和PHP搭配之更佳组合)在授权表中插入、改变和更新值。你可以在MySQL(和PHP搭配之更佳组合)的Contrib目录找到这些实用程序。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21010.html

分享给朋友:

“MySQL数据库中如何正确增加新用户权限?” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...