用户管理
账户管理
我们在数据库里面创建用户,修改用户,删除用户,本质上就是对mysql数据库下的user表进行增删查改,用户的所有信息都存在这张表里,我们想要创建用户可以往user表insert,删除用户可以delete这个user表的数据,但是数据库单独支持了一套对用户管理的语法。
创建用户
create user '用户名'@'登陆主机/ip' identified by '密码';
这个ip地址如果想让用户在所有主机都能登录可以使用
%
,但是一般不会这么干。删除用户
drop user '用户名'@'主机名';
修改用户密码
set password=password('新的密码');
删除自己用户的密码
set password for '用户名'@'主机名'=password('新的密码');
删除别的 用户的密码,不过需要拥有足够的权限,一般是root账户使用。
权限管理
我们创建好普通账户之后,还需要给这个账户匹配的权限,就是想让这个账户干什么,不想让它干什么,通过权限来约束这个账户。
创建权限
回收权限
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
如果发现执行权限操作没有立马生效,执行flush privileges;
权限列表
- SELECT: 允许用户查询(检索)数据库中的数据。
- INSERT: 允许用户向数据库中的表插入新的数据。
- UPDATE: 允许用户修改数据库中表中已存在的数据。
- DELETE: 允许用户从表中删除数据。
- CREATE: 允许用户创建新的数据库或表。
- DROP: 允许用户删除数据库或表。
- ALTER: 允许用户修改数据库或表的结构。
- GRANT OPTION: 允许用户将他们拥有的权限授予其他用户。
- CREATE TEMPORARY TABLES: 允许用户创建临时表,这些表在当前会话结束时会被销毁。
- CREATE VIEW: 允许用户创建视图。
- SHOW VIEW: 允许用户执行
SHOW CREATE VIEW
来查看视图的创建语句。- CREATE ROUTINE: 允许用户创建存储过程或函数。
- ALTER ROUTINE: 允许用户修改存储过程或函数。
- EXECUTE: 允许用户执行存储过程。
- FILE: 允许用户执行文件操作,如
LOAD DATA INFILE
和SELECT...INTO OUTFILE
。- PROCESS: 允许用户查看当前运行的进程。
- REFERENCES: 允许用户创建外键。
- RELOAD: 允许用户执行
FLUSH
语句,重新加载权限表等。- SHUTDOWN: 允许用户执行
SHUTDOWN
语句。- SUPER: 允许用户执行一些超级用户级别的操作,如更改服务器参数或关闭服务器。