MySQL用户操作:使用主机表管理权限控制 (mysql 用户 使用主机表)

MySQL是一种常见的关系型数据库管理系统,拥有着广泛的应用。MySQL提供了多种用户管理的方式,其中使用主机表管理权限控制是一种重要的方式。本文将介绍什么是主机表、如何使用主机表管理用户权限以及如何在MySQL中创建和操作主机表。

一、什么是主机表

主机表是MySQL中一个特殊的表,用于记录允许连接到MySQL服务器的主机信息。主机表中的每个记录存储了一个允许连接到MySQL服务器的主机的IP地址、主机名以及允许该主机连接的用户和密码等信息。

在MySQL中,有许多权限可以授予给用户,如SELECT,INSERT,UPDATE以及DELETE等。当允许一个用户在一个特定的主机上使用这些权限时,就需要在主机表中创建一个对应的记录,以授权该用户在对应的主机上使用对应的权限。

二、如何使用主机表管理用户权限

使用主机表管理用户权限可以有效地控制用户的访问权限,保证数据的安全性。下面是使用主机表管理用户权限的步骤:

1. 创建主机表

在MySQL中,可以使用如下命令创建主机表:

CREATE TABLE mysql.hosts (

Host CHAR(60) COLLATE utf8_bin NOT NULL DEFAULT ”,

Db CHAR(64) COLLATE utf8_bin NOT NULL DEFAULT ”,

User CHAR(16) COLLATE utf8_bin NOT NULL DEFAULT ”,

Select_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Insert_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Update_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Delete_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Drop_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Grant_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

References_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Index_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Alter_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_tmp_table_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Lock_tables_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_view_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Show_view_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_routine_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Alter_routine_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Execute_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Event_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Trigger_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

PRIMARY KEY (Host,Db,User)

)

ENGINE=MyISAM

DEFAULT CHARSET=utf8 COLLATE=utf8_bin

COMMENT=’Host table’;

创建完成后,就可以将主机表中的记录用于控制用户的访问权限了。

2. 添加主机表记录

在MySQL中,可以使用如下命令添加主机表记录:

INSERT INTO mysql.hosts

(Host,Db,User,

Select_priv,Insert_priv,Update_priv,Delete_priv,

Create_priv,Drop_priv,Grant_priv,

References_priv,Index_priv,Alter_priv,

Create_tmp_table_priv,Lock_tables_priv,

Create_view_priv,Show_view_priv,

Create_routine_priv,Alter_routine_priv,Execute_priv,

Event_priv,Trigger_priv)

VALUES

(‘localhost’,’mydb’,’testuser’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’);

以上命令会创建一个可以在本地(’localhost’)连接到mydb数据库的用户名为testuser,并授权该用户可以使用SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,GRANT,REFERENCES,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,EXECUTE,EVENT以及TRIGGER权限的记录。

3. 授权用户连接主机

在使用主机表管理用户权限时最重要的一步就是授权用户连接主机。可以使用如下命令授权用户连接主机:

GRANT ALL PRIVILEGES ON mydb.* TO ‘testuser’@’localhost’ IDENTIFIED BY ‘password’;

以上命令会将mydb数据库中的所有权限授予testuser用户,允许testuser用户在localhost主机上连接MySQL服务器,并以password作为密码进行验证。

三、如何在MySQL中创建和操作主机表

主机表是MySQL中一个特殊的表,可以通过许多方式来创建和操作主机表。以下是一些简单的例子:

1. 通过命令行创建主机表

可以在MySQL命令行中使用如下命令创建主机表:

mysql> CREATE TABLE mysql.hosts (

Host CHAR(60) COLLATE utf8_bin NOT NULL DEFAULT ”,

Db CHAR(64) COLLATE utf8_bin NOT NULL DEFAULT ”,

User CHAR(16) COLLATE utf8_bin NOT NULL DEFAULT ”,

Select_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Insert_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Update_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Delete_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Drop_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Grant_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

References_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Index_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Alter_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_tmp_table_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Lock_tables_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_view_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Show_view_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Create_routine_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Alter_routine_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Execute_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Event_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

Trigger_priv ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

PRIMARY KEY (Host,Db,User)

)

ENGINE=MyISAM

DEFAULT CHARSET=utf8 COLLATE=utf8_bin

COMMENT=’Host table’;

2. 通过MySQL Workbench创建主机表

在MySQL Workbench中,可以通过界面的方式来创建主机表。打开MySQL Workbench,选择Database->Create Model,然后可以拖拽表元素来创建主机表。

3. 在phpMyAdmin中创建主机表

phpMyAdmin是一种常见的MySQL管理工具,可以通过phpMyAdmin来创建和操作主机表。打开phpMyAdmin,选择对应的database,并点击“SQL”选项卡,然后输入如下SQL命令:

CREATE TABLE `mysql`.`hosts` (

`Host` CHAR(60) COLLATE utf8_bin NOT NULL DEFAULT ”,

`Db` CHAR(64) COLLATE utf8_bin NOT NULL DEFAULT ”,

`User` CHAR(16) COLLATE utf8_bin NOT NULL DEFAULT ”,

`Select_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Insert_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Update_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Delete_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Create_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Drop_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Grant_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`References_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Index_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Alter_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Create_tmp_table_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Lock_tables_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Create_view_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Show_view_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Create_routine_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Alter_routine_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Execute_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Event_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

`Trigger_priv` ENUM(‘N’,’Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,

PRIMARY KEY (`Host`,`Db`,`User`)

)

ENGINE=MyISAM

DEFAULT CHARSET=utf8 COLLATE=utf8_bin

COMMENT=’Host table’;

以上就是在MySQL中使用主机表管理权限的方法,及如何创建和操作主机表的介绍。使用主机表管理权限可以有效地保证数据的安全性,希望读者能够掌握并善加应用。

相关问题拓展阅读:

用户权限管理mysql数据库中常用的权限管理数据表是哪五个?各有什么用途

MySQL权限系统的主要功能是证实连接搜灶槐到一台给定主机的用世友户,并且赋予该用户在数据库上的相关DML,DQL权限。

MySQL存取控制包辩衫含2个阶段:

一是服务器检查是否允许你连接

二是假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。

mysql主机地址是什么????下面的该怎么添??

mysql主机地址是什么????下面的该怎么添??

答:

SQLyog

Enterprise

中,mysql的主机地址如果你是本机,就填写localhost,如闹扮果不是本机就需要填写那个mysql服务器的

IP地址

用户名

,如果是你自己本机,就可以用root,而不是本机就需要用对方给你的特定用户名;

密码,你自己本机的话,就是你袭碰自己安装的时候所设置的那个密码,不是本机就需要用对方给你那个用户的对应密码。

端口不管是拍弯谈不是本机,都是固定端口3306;

数据库,如果是本机,且是用的root账号,那么可以省略不填写,而如果不是root账号,就需要用那个用户所拥有的数据库权限的那个数据库名;

如果不是本机,那么就是用对方给你的账号密码和数据库,你就输入那数据库名就OK了。

主机地址就是你要连接的服物岩务器的IP地址罩拦御,如果衡迹是本机的话写localhost或127.0.0.1

密码填写一下就OK了.

你好:

mysql主机地址就是服务器的ip地址,希望我的回答对您有帮助!!

关于mysql 用户 使用主机表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » MySQL用户操作:使用主机表管理权限控制 (mysql 用户 使用主机表)