mysql-11 数据库安全性以及权限操作
概念
1)安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏;
2)完整性:指数据的正确性和相容性,即防止数据库中存在不符合语义(或不正确)的数据;
关系数据库系统中的存取权限
对象类型 | 对象 | 操作类型 |
---|---|---|
数据库模式 | 模式 | create,schema |
数据库模式 | 基本表 | create table,alter table |
数据库模式 | 视图 | create view |
数据库模式 | 索引 | create index |
数据 | 基本表和视图 | select,insert,update,delete,references,all privileges |
数据 | 属性列 | select,insert,update,references,all privileges |
相关语法举例
1、授权(grant)
1 | #将对student和course表的全部操作权限授予用户u2和u3,并且允许将此权限再授予其他用户 |
2、收回权限(revoke)
1 | #收回所有用户对student表的查询权限 |
数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。常用做法是为一组具有相同权限的用户创建一个角色,以此简化授权的过程。
1、通过角色实现将一组权限授权给用户
1 | #创建角色r1 |
视图机制
除了角色,还可以给不同的用户定义不同的视图,将数据对象限制在一定范围内,为数据提供一定程度的安全保护(不同用户视图不同,例如学生A不能看到学生B的成绩)。
举例
1 | #建立计算机系学生的视图,把对该视图的select权限授予wang(老师),将该视图的所有权限授予zhang(系主任) |