11.【DCL:数据控制语言】

概述

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

  • GRANT:授权。

  • ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。

    回滚—ROLLBACK
    回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;

  • COMMIT [WORK]:提交。

在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。

提交数据的方式

提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。

显式提交

用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;

隐式提交

用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTERAUDITCOMMENTCONNECTCREATEDISCONNECTDROP
EXITGRANTNOAUDITQUITREVOKERENAME

自动提交

若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON;

管理用户

1. 添加用户
  • 语法:

通配符: % 表示可以在任意主机使用用户登录数据库

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

例如:

   CREATE USER 'zhangsan'@'localhost' IDENTIFIED BY '123';
   CREATE USER 'zhangsan'@'%' IDENTIFIED BY '123';
2. 删除用户
  • 语法:
DROP USER '用户名'@'主机名';

例如:

 DROP USER 'zhangsan'@'localhost';
3. 修改用户密码
  • 第一种:
UPDATE USER SET authentication_string = ('新密码') WHERE USER = '用户名';
UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE USER='用户名';
  • 第二种:(推荐)
ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';

例如:

UPDATE USER SET authentication_string = PASSWORD('abc') WHERE USER = 'zhangsan' AND HOST = '%';
ALTER USER 'zhangsan'@'localhost' IDENTIFIED BY '123123';
ALTER USER zhangsan IDENTIFIED BY '123456';
4. mysql中忘记了root用户的密码
		1. cmd -- > net stop mysql 停止mysql服务
			* 需要管理员运行该cmd

		2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables
		3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功(无验证登录)
		4. use mysql;
		5. update user set password = password('你的新密码') where user = 'root';
		6. 关闭两个窗口
		7. 打开任务管理器,手动结束mysqld.exe 的进程
		8. 启动mysql服务:net start mysql
		9. 使用新密码登录。

权限管理

1. 查询权限

  • 语法:
SHOW GRANTS FOR '用户名'@'主机名';

例子:

SHOW GRANTS FOR 'lisi'@'%';

2. 授予权限

  • 语法

all:授予所有权限。

*.*:在任意数据库任意表上

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

例子:

-- 给张三用户授予所有权限,在任意数据库任意表上
GRANT ALL ON *.* TO 'zhangsan'@'localhost';

3. 撤销权限

  • 语法:
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

例子:

REVOKE UPDATE ON db3.account FROM 'lisi'@'%';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值