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;
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1097247.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复