当前位置:首页 > 行业动态 > 正文

如何创建MySQL数据库用户并建立连接?

在MySQL中,新建数据库用户可以通过以下SQL语句实现:,,“ sql,CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';,` ,,创建一个名为newuser 的用户,密码为newpassword ,允许从任何主机连接:,,` sql,CREATE USER 'newuser'@'%' IDENTIFIED BY 'newpassword';,“

MySQL新建数据库用户

如何创建MySQL数据库用户并建立连接?  第1张

创建用户

1、使用CREATE USER语句创建用户

基本语法

“`sql

CREATE USER ‘用户名’@’主机名’ IDENTIFIED BY ‘密码’;

“`

示例

创建一个名为testUser的用户,密码为password123,只能从本地连接:

“`sql

CREATE USER ‘testUser’@’localhost’ IDENTIFIED BY ‘password123’;

“`

注意事项

用户名和主机名之间用@符号连接。

%表示允许从任何主机连接;指定特定IP地址则只允许从该IP连接。

新用户的默认权限很少,需要进一步授予权限。

2、使用INSERT语句在mysql.user表中添加用户

基本语法

“`sql

INSERT INTO mysql.user (Host, User, authentication_string) VALUES (‘主机名’, ‘用户名’, PASSWORD(‘密码’));

“`

示例

创建一个名为testUser2的用户,密码为password456,只能从本地连接:

“`sql

INSERT INTO mysql.user (Host, User, authentication_string) VALUES (‘localhost’, ‘testUser2’, PASSWORD(‘password456’));

“`

注意事项

必须拥有对mysql.user表的INSERT权限。

在MySQL 5.7及以上版本中,authentication_string字段代替了Password字段。

授权用户

1、授予所有权限

语法

“`sql

GRANT ALL PRIVILEGES ON *.* TO ‘用户名’@’主机名’;

“`

示例

授予testUser用户对所有数据库的所有权限:

“`sql

GRANT ALL PRIVILEGES ON *.* TO ‘testUser’@’localhost’;

FLUSH PRIVILEGES;

“`

2、授予特定数据库的权限

语法

“`sql

GRANT ALL PRIVILEGES ON 数据库名.* TO ‘用户名’@’主机名’;

“`

示例

授予testUser用户对testDB数据库的所有权限:

“`sql

GRANT ALL PRIVILEGES ON testDB.* TO ‘testUser’@’localhost’;

FLUSH PRIVILEGES;

“`

3、授予特定表的权限

语法

“`sql

GRANT 权限类型 ON 数据库名.表名 TO ‘用户名’@’主机名’;

“`

示例

授予testUser用户对testDB.table1表的SELECT和INSERT权限:

“`sql

GRANT SELECT, INSERT ON testDB.table1 TO ‘testUser’@’localhost’;

FLUSH PRIVILEGES;

“`

删除用户

1、删除用户

语法

“`sql

DROP USER ‘用户名’@’主机名’;

“`

示例

删除testUser用户:

“`sql

DROP USER ‘testUser’@’localhost’;

“`

2、删除用户及其数据库

语法

“`sql

DROP USER ‘用户名’@’主机名’;

DROP DATABASE 数据库名;

“`

示例

删除testUser2用户及其数据库testDB2:

“`sql

DROP USER ‘testUser2’@’localhost’;

DROP DATABASE testDB2;

“`

修改用户密码

1、修改用户密码

方法一:实时更新

“`sql

SET PASSWORD FOR ‘用户名’@’主机名’ = PASSWORD(‘新密码’);

“`

示例

将testUser用户的密码改为newPassword123:

“`sql

SET PASSWORD FOR ‘testUser’@’localhost’ = PASSWORD(‘newPassword123’);

“`

2、修改用户密码

方法二:需要刷新权限

“`sql

UPDATE mysql.user SET authentication_string = PASSWORD(‘新密码’) WHERE User = ‘用户名’ AND Host = ‘主机名’;

FLUSH PRIVILEGES;

“`

示例

将testUser用户的密码改为newPassword456:

“`sql

UPDATE mysql.user SET authentication_string = PASSWORD(‘newPassword456’) WHERE User = ‘testUser’ AND Host = ‘localhost’;

FLUSH PRIVILEGES;

“`

FAQs(常见问题解答)

Q1: 如何查看MySQL中所有用户及其权限?

A1: 你可以使用以下SQL命令来查看所有用户及其权限:

SELECT user, host, authentication_string FROM mysql.user;
SHOW GRANTS FOR '用户名'@'主机名';

第一个命令列出了MySQL中的用户信息,第二个命令显示特定用户的权限。

Q2: 如何在MySQL中撤销用户的权限?

A2: 你可以使用以下SQL命令来撤销用户的权限:

REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机名';
FLUSH PRIVILEGES;

要撤销testUser用户对testDB.table1表的SELECT权限,可以执行以下命令:

REVOKE SELECT ON testDB.table1 FROM 'testUser'@'localhost';
FLUSH PRIVILEGES;
0