数据库系统原理第十三节
数据库安全和保护
安全性与访问控制
数据库安全:指保护数据库以防止不合法的使用而造成数据泄露,更改或破坏,所以安全性对于任何一个DBMS来说都是至关重要的
- 身份验证
- 数据库用户权限确认
查看用户
1 | select user from mysql.user |
创建用户
1 | create user user[identified by [password]'password'] |
create user ‘test‘@’%’ identified by ‘123’
create user ‘tset‘@’%’ identified by password ‘jdkfjalkdjskflajsdfa’
删除用户
1 | drop user user |
drop user ‘test‘@’%’
修改用户
1 | rename user old_user to new_user |
修改密码
1 | set password for 'test'@'%' = PASSWORD('pass') |
账号权限管理
使用grant 为用户授权
1 | grant |
grant select (id, name)
on test.test_table
to test@’localhost’
收回用户权限
1 | revoke |
revoke select on test.test_table from ‘test‘@’localhost’
事务与并发控制
所谓事务是用户定义的一个数据操作序列
,这些操作可作为一个完整的工作单元,要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务中的操作一般是对数据的更新操作,包括增删改
以 begin transaction
开始
commit 或 rollback结束
事务的特征
- A 原子性
- C 一致性
- I 隔离性
- D 持续性
并发操作问题
- 丢失更新
- 不可重复读
- 读‘脏’数据
封锁
封锁 是最常用的并发控制技术
基本思想:需要时,事务通过向系统请求对它所希望的数据对象加锁,以确保它不被非预期改变