MYSQL(DCL:管理) - G-holic/Java-Web GitHub Wiki

DCL:

* SQL分类:
	1.DDL:操作数据库和表
	2.DML:增删改表中数据
	3.DQL:查询表中数据
	4.DCL:管理用户,授权
	
* DBA:数据库管理员

* DCL:管理用户,授权
	1.管理用户
		1.添加用户
			* 语法:create user '用户名'@'主机名' identified by '密码';
		2.删除用户
			* 语法:drop user '用户名'@'主机名';
		3.修改用户密码:
			* 语法:update user set password = password('新密码') where user = '用户名';
			* 语法:set password for '用户名'@'主机名' password('新密码');
			
			* mysql中忘记了root用户的密码?
				1.cmd -- > net stop mysql  停止mysql服务
				
					* 需要管理员运行该cmd
					
				2.使用无验证方式启动mysql服务:mysqld --skip-grant-tables
					
					* 指令操作之后,光标会一直卡在那个窗口,这时打开一个新的cmd窗口
					
				3.直接输入mysql,敲回车之后直接登录成功。
				4.use mysql;
				5.update user set password = password('你的新密码') where user = 'root';
				6.关闭两个窗口
				7.启动任务管理器.在进程里面找到mysqld,点击结束进程。
				8.先net start mysql 启动mysql服务。
				9.使用新密码登录。
		4.查询用户:
			-- 1.切换到mysql数据库
			use mysql;
			-- 2.查询user表
			select * from user;
			
			* 通配符:% 表示可以在任意主机使用用户登录数据库
	2.权限管理
		1.查询权限:
			-- 查询权限
			show grants for '用户名'@'主机名';
		2.授予权限:
			-- 授予权限:
			grants 权限列表(select,delete,update...) on 数据库名.表名 to '用户名'@'主机名';
			
			-- 给用户授予所有权限。在任意数据库任意表上
			grants all on *.* to '用户名'@'主机名';
			
		3.撤销权限:
			-- 撤销权限:
			revoke 权限列表 on 数据库.表名 from '用户名'@'主机名';