MySQL创建用户、权限分配以及添加、修改权限
MySQL创建用户、权限分配以及添加、修改权限
一、创建用户
使用CREATE USER语句创建用户
语法:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
参数说明:
username:指定创建的用户名。
host:指定用户登录的主机名。如果是本地用户,可使用“localhost”。如果想让用户可以从远程主机登录,可使用通配符“%”。
password:指定用户的登录密码。
示例:
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password123';
通过INSERT语句添加用户(不推荐,但了解有助于深入理解MySQL)
插入语句可以将用户的信息添加到mysql.user表中,但必须拥有对mysql.user表的INSERT权限。
示例(MySQL 5.7及以上版本):
INSERT INTO mysql.user (Host, User, authentication_string, ...)
VALUES ('localhost', 'new_user', PASSWORD('password123'), ...);
注意:此方法需要手动设置多个字段,且不易于管理权限,因此通常不推荐使用。
二、权限分配
GRANT语句授予权限
语法:
GRANT priv_type ON databasename.tablename TO 'username'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
参数说明:
priv_type:表示要授予的权限类型,如ALL PRIVILEGES、SELECT、INSERT、UPDATE、DELETE等。
databasename.tablename:表示权限作用的数据库和表。可以使用通配符“*”表示所有数据库或所有表。
'username'@'host':指定用户名和主机名。
IDENTIFIED BY 'password':为新用户设置密码(如果创建用户时未设置密码)。
WITH GRANT OPTION:允许新用户将自己拥有的权限授予其他用户(可选)。
示例:
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' IDENTIFIED BY 'password123' WITH GRANT OPTION;
REVOKE语句收回权限
如果需要收回已授予的权限,可以使用REVOKE语句。
语法:
REVOKE priv_type ON databasename.tablename FROM 'username'@'host';
示例:
REVOKE INSERT, UPDATE ON mydb.* FROM 'new_user'@'localhost';
三、添加和修改权限
添加权限
如果需要为用户添加额外的权限,可以再次使用GRANT语句。
示例:
GRANT SELECT ON anotherdb.* TO 'new_user'@'localhost';
修改权限
修改权限实际上是通过先收回原权限,再授予新权限来实现的。
示例:如果用户原来只有SELECT权限,现在需要添加INSERT权限,可以先收回SELECT权限(实际上通常不需要,因为GRANT语句会覆盖之前的权限),然后授予SELECT和INSERT权限:
REVOKE SELECT ON mydb.* FROM 'new_user'@'localhost'; -- 通常不需要这一步
GRANT SELECT, INSERT ON mydb.* TO 'new_user'@'localhost';
注意:直接再次使用GRANT语句授予新权限即可,MySQL会自动覆盖之前的权限设置。
四、其他注意事项
刷新权限
在对用户权限进行修改后(如添加、删除用户或修改用户权限),需要刷新权限设置以使更改生效。
语法:
FLUSH PRIVILEGES;
删除用户
如果需要删除用户,可以使用DROP USER语句。
语法:
DROP USER 'username'@'host';
示例:
DROP USER 'new_user'@'localhost';
查看用户权限
可以使用SHOW GRANTS语句查看用户的权限。
语法:
SHOW GRANTS FOR 'username'@'host';
示例:
SHOW GRANTS FOR 'new_user'@'localhost';
通过以上步骤和示例代码,您可以成功地为用户分配MySQL权限,并根据实际需求添加或修改用户的权限。请务必谨慎操作,确保数据库的安全性和稳定性。
MySQL的创建用户以及用户权限_mysql 创建用户-CSDN博客
mysql:Windows修改MySQL数据库密码(修改或忘记密码)-腾讯云开发者社区-腾讯云
MySQL 查看本地用户名和密码_查看mysql密码-CSDN博客
MySQL 查看用户名密码_mob649e815f0f18的技术博客_51CTO博客