用户管理和权限和设置——mysql

1. 用户管理

在MySQL中,要想管理用户,首先必须要登录到MySQL服务器。登录时需要提供用户名和密码,只有用户名为“root”、密码正确的用户才能成功登录。

一旦登录成功,就可以对MySQL的用户进行管理,包括创建用户、删除用户、修改用户权限等。

1.1 创建用户

创建用户的语法如下:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

其中,'username'为要创建的用户名,'host'为用户所在的主机,可以指定为本地或远程主机,如果指定为'localhost'或'127.0.0.1',表示只允许在该主机上登录,如果指定为'%',则允许在任何主机上登录。'password'为用户密码,必须使用单引号括起来。

例如,创建一个名为'john',密码为'123456',只允许在本地登录的用户,可以使用以下命令:

CREATE USER 'john'@'localhost' IDENTIFIED BY '123456';

创建用户后,用户还没有任何权限,需要授权才能访问数据库。

1.2 删除用户

删除用户的语法如下:

DROP USER 'username'@'host';

其中,'username'和'host'与创建用户时相同。

例如,删除名为'john',只允许在本地登录的用户,可以使用以下命令:

DROP USER 'john'@'localhost';

2. 用户权限

MySQL中的权限分为全局权限和数据库权限两种。全局权限控制用户对整个MySQL服务器的访问,数据库权限控制用户对某个数据库的访问。

2.1 授权

授权的语法如下:

GRANT PRIVILEGE ON database.table TO 'username'@'host';

其中,'PRIVILEGE'为要授予的权限,可以指定为'ALL'表示所有权限,也可以指定为'SELECT'、'INSERT'、'UPDATE'、'DELETE'等单个权限。'database'和'table'分别为要授权的数据库和表,如果要授权所有表,可以使用'*'通配符。'username'和'host'与创建用户时相同。

例如,授予名为'john',只允许在本地登录的用户对数据库'mydb'的所有表拥有所有权限,可以使用以下命令:

GRANT ALL PRIVILEGES ON mydb.* TO 'john'@'localhost';

2.2 撤销权限

撤销权限的语法如下:

REVOKE PRIVILEGE ON database.table FROM 'username'@'host';

其中,'PRIVILEGE'、'database'、'table'、'username'和'host'与授权时相同。

例如,撤销名为'john',只允许在本地登录的用户对数据库'mydb'的所有表拥有的所有权限,可以使用以下命令:

REVOKE ALL PRIVILEGES ON mydb.* FROM 'john'@'localhost';

3. 设置

MySQL的设置可以通过修改配置文件或使用SET命令来改变。修改配置文件需要重启MySQL服务器才能生效,而使用SET命令可以即时生效。

3.1 修改配置文件

MySQL的配置文件通常命名为my.cnf或my.ini,可以在MySQL安装目录下找到。在配置文件中,以'#'开头的行表示注释,可以用于说明配置的作用。

例如,要修改MySQL默认编码为UTF-8,可以找到配置文件中的如下行:

#character-set-server=latin1

将其修改为:

character-set-server=utf8

然后重启MySQL服务器即可生效。

3.2 使用SET命令

使用SET命令可以即时修改MySQL的配置,但是修改的配置只对当前会话有效,会话结束后,配置会恢复为原来的值。

例如,要将MySQL默认编码改为UTF-8,可以使用以下命令:

SET character_set_server=utf8;

这样,当前会话中的MySQL默认编码就变为了UTF-8。

总结

MySQL的用户管理和权限设置是数据库管理的重要组成部分,掌握这些知识可以更好地保护数据库的安全性。同时,MySQL的设置也是数据库调优的重要手段,通过修改配置可以提高MySQL的性能和稳定性。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签