如何创建MySQL数据库用户并建立连接?
- 行业动态
- 2024-09-28
- 1
在MySQL中,新建数据库用户可以通过以下SQL语句实现:,,“ sql,CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';,` ,,创建一个名为newuser 的用户,密码为newpassword ,允许从任何主机连接:,,` sql,CREATE USER 'newuser'@'%' IDENTIFIED BY 'newpassword';,“
MySQL新建数据库用户
创建用户
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;
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/49094.html