举例:
在MySQL中可以通过以下语句创建用户并授予对test_db数据库中所有表的查询权限:
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON test_db.* TO 'testuser'@'localhost';
具体步骤:
-
使用CREATE USER语句创建名为testuser的用户,设置密码为password。
-
使用GRANT语句给testuser用户授予test_db数据库中所有表(test_db.*)的SELECT权限。
-
该用户可以使用以下SQL来查询test_db库下的表:
SELECT * FROM test_db.table1;
SELECT * FROM test_db.table2;
如果要远程访问,可以将’localhost’改为’%':
CREATE USER 'testuser'@'%' IDENTIFIED BY 'password';
GRANT SELECT ON test_db.* TO 'testuser'@'%';
MySQL的用户管理和权限控制非常灵活,可以对不同的用户准确地授予所需的数据库访问权限。
解释:
在 MySQL 中,IDENTIFIED BY 'password'
是在创建用户时用来指定该用户的登录密码的语法。
示例:
CREATE USER 'db_user'@'localhost' IDENTIFIED BY '1234';
这里我们创建了一个名为db_user的用户,其登录密码被设置为1234。
IDENTIFIED BY 后跟的明文密码会被 MySQL 加密后存入 user 表中。
用户在登录时需要提供正确的密码才能通过验证。
MySQL 加密密码的方式有:
- MySQL原生密码 - 使用 MySQL 自己的密码加密方法
- SHA256密码 - 使用SHA256哈希算法加密
- 兼容模式 - 同时支持原生和SHA256密码
可以在创建用户时指定密码加密方式:
CREATE USER 'db_user'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
CREATE USER 'db_user'@'localhost' IDENTIFIED BY '1234' PASSWORD EXPIRE; # 启用过期密码插件
所以,IDENTIFIED BY 为MySQL提供的设置用户密码的标准语法,非常常用。
正确设置密码能确保数据库安全性。