hithyc 2019-12-27
目的:确保数据的安全。用户的访问权限不能多也不能少。
root对数据库有完全的控制。
在日常工作中,不要使用root,而是使用有限权限的一系列账户,根据使用者的身份,给予不同的权限。
select user(); 查看当前用户;
SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;
设定了一个查看所有的用户的格式:简单的写法是select user, host from mysql.user;
备注: mysql数据库有一个user表, 储存了user的信息。
CREATE USER ‘username‘@‘hostname‘ IDENTIFIED BY ‘password‘;
创建完成后,退出控制台后,再使用mysql -u username -p进入
后续,
详细见文档:http://www.mysqltutorial.org/mysql-grant.aspx
grant xxx on *.* to ; #批准xxx功能 (所有数据库的所有表)给testuser(这是在root中授权的)
create user创建的用户只能登陆 MySQL Server, 不能做其他事情。只有做了相关授权后,才行。
*.*表示:数据库名.表名
例子:
grant select on test2.* to ;
显示一个用户的特权。
mysql> show grants for ; +-----------------------------------------------+ | Grants for | +-----------------------------------------------+ | GRANT USAGE ON *.* TO `test_user`@`localhost` | +-----------------------------------------------+
usage表示根本没有权限。
改名。
撤销某个功能的使用权限。
revoke select on test2.* from ;
各种权限可以看权限表。
改之前要留意:
2种方法:
set password for = "123456"