用户信息查看
用户管理
create user '用户名' [ @'主机名'] [identified by ' 密码'];
#删除用户
drop user ' 用户名' [@' 主机名'];
#修改密码
alter user ' 用户名' @' 主机名' identified by ' 新密码';
注意:MySQL的用户账号由两部分组成:用户名和主机名,即用户名@主机名,主机名可以是IP或机器名称,主机名为%表示允许任何地址的主机远程登录MySQL数据库。
权限管理
权限体系
层级 描述 全局层级 适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限。 数据库层级 适用于一个给定数据库中的所有目标。这些权限存储在mysql.db和mysql.host表中GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限。 表层级 适用于一个给定表中的所有列。这些权限存储在mysql.talbes_priv表中。GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤销表权限。 列层级 适用于一个给定表中的单一列。这些权限存储在mysql.columns_priv表中。当使用REVOKE时,您必须指定与被授权列相同的列。 子程序层级 CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT权限适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级。而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中。
权限信息保存位置
表名 描述 user 用户权限表,记录账号、密码及全局性权限信息 db 记录数据库相关权限 table_priv 用户对某个表拥有的权限 column_priv 用户对某表的某个列所拥有的权限 procs_priv 用户对存储过程及存储函数的操作权限
权限分类
类型 关键字 数据 SELECT, INSERT, UPDATE, DELETE, FILE 结构 CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE, CREATE VIEW, EVENT, TRIGGER 管理 USAGE, GRANT, SUPER, PROCESS, RELOAD, SHUTDOWN, SHOW DATABASES, LOCK TABLES, REFERENCES, REPUCATION CUENT, REPUCATION SLAVE, CREATE USER
权限管理
grant 权限关键字 on 数据库名. 表名 to '用户名' [ @'主机名'] ;
#撤销授权 revoke
revoke 权限关键字 on 数据库名.表名 from ' 用户名' [@' 主机名'] ;
#刷新权限
flush privileges ;
#查看权限
show grants for ' 用户名' [@' 主机名'] ;
权限关键字:参考权限分类,如果为all privileges,表示所有权限
root用户
修改root用户密码
关闭mysql服务; 关闭权限验证
mysqld
tables
另开终端连接数据库,刷新权限并修改root用户密码; 中止步骤2,启动mysql服务
禁止root远程登录
root是MySQL数据库的超级管理员,几乎拥有所有权限,一旦泄露就很可能导致安全性问题; 禁止root远程登录,要确保用户为root时,其host为localhost
知识总结,交流学习,不当之处敬请指正,谢谢!