GRANT 进行授权
一般格式:(将对指定操作对象的指定操作权限授予指定的用户)
grant 权限1,权限2...
on 对象类型 对象名
to 用户1,用户2
[with grant option]
with grant option: 作用是该权限是否可以进行传播
需要注意with grant option 不允许循环授权
u1 -> u2 -> u3 此时u3不允许授权给u1
例如:将查询Student表权限授予用户u1
grant select
on table Student
to u1
例如:将对Student表和Course表的全部权限授予用户u2和u3
grant all priviliges
on table Student,Course
to u2,u3
例如:对表sc的查询权授予所有用户
grant select
on table sc
to public
例如:把查询Student表和修改学生学号的权限给用户u4
grant update(Sno),select
on table Student
to u4
对属性列的授权的时候必须要明确指定相应的属性列名
remove 进行回收权限
一般格式:
remove 权限1,权限2..
on 对象类型 对象名
from 用户1,用户2...
例如:将用户u4修改学生学号的权限收回
remove updata(Sno)
on table Student
from u4
例如:将所有用户对表sc的查询权限收回
remove select
on table sc
from public
对于通过多次授权得到的权限,在收回的时候需要使用cascade关键字进行级联收回
例如:u3将对sc表的insert权限授权过给u4,u5,现在想要将u3的权限收回
remove insert
on table sc
from u3 cascade
数据库管理员在创建用户时实现
create user 用户名
WITH DBA|RESOURCE|CONNECT
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNtcLNys-1588862081168)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200503205715038.png)]
create role 角色名
例如:创建一个角色r1
create role r1
grant 权限1,权限2...
on 对象类型
to 角色1,角色2...
例如:使用grant语句,让角色r1拥有Student表的select、update、insert 权限
grant select,update,insert
on table Student
to R1
grant 角色1,角色2
to 角色3.../用户..
[with admin option]
例如:将R1角色授予王平、张明、赵玲,使他们具有r1所有包含的全部权限
grant R1
to 王平、张明、赵玲
在指定with admin option 语句之后,则获得某种权限的角色或用户还可以将这种权限授予其他角色
授权者是角色的创建者或者是拥有这个角色上的admin option
revoke 权限1,权限2
on 对象类型 对象名
from 角色1,角色2
例如:一次性通过收回R1来回收王平的3个权限
revoke R1
from 王平
revoke的执行者是角色的创建者或者是拥有这个角色上的admin option
使得角色R1在原来的基础上增加了Student表的delete权限
grant delete
on table Student
to R1
将R1减少select权限
renvoke select
on table Student
from R1
其中,主体的敏感度标记为许可证级别,客体的敏感度标记为密级
实现强制存取控制时要首先实现自主存取控制
自主存取控制与强制存取控制共同构成了数据库管理系统的安全机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BHJvgbuw-1588862081171)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200507101211160.png)]
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定的安全保护
间接地实现支持存取谓词的用户权限定义
例如:建立计算机视图,把该视图的select权限授予给王平,并且把该视图上的所有操作权限都授予张明
1. 应该创建视图
create view CS_Studnet
as
select *
from Student
where Sdept = 'CS'
将视图的权限授予王平
grant select
on CS_select
to 王平
将所有权限授予张明
grant all privileges
on CS_Student
to 张明
Audit 设置审计功能
·例如:对修改SC表结构或者修改SC表数据的操作进行审计
audit alter,update
on SC
noAudit 取消审计功能
例如:取消对SC表的一切审计
noaudit alter,update
on SC
用户级审计
系统级审计
存储加密是一种透明存储加密、是一种内核级加密,对用户完全透明
将数据在写入磁盘的时候对数据进行加密,在授权用户读取数据时再对他进行解密
存储加密 只需要在创建表语句中说明需要加密的字段即可,不需要再数据库的应用进行任何的修改
优点:性能较好,安全完备性较高
在这里插入图片描述
GRANT 进行授权
一般格式:(将对指定操作对象的指定操作权限授予指定的用户)
grant 权限1,权限2...
on 对象类型 对象名
to 用户1,用户2
[with grant option]
with grant option: 作用是该权限是否可以进行传播
需要注意with grant option 不允许循环授权
u1 -> u2 -> u3 此时u3不允许授权给u1
例如:将查询Student表权限授予用户u1
grant select
on table Student
to u1
例如:将对Student表和Course表的全部权限授予用户u2和u3
grant all priviliges
on table Student,Course
to u2,u3
例如:对表sc的查询权授予所有用户
grant select
on table sc
to public
例如:把查询Student表和修改学生学号的权限给用户u4
grant update(Sno),select
on table Student
to u4
对属性列的授权的时候必须要明确指定相应的属性列名
remove 进行回收权限
一般格式:
remove 权限1,权限2..
on 对象类型 对象名
from 用户1,用户2...
例如:将用户u4修改学生学号的权限收回
remove updata(Sno)
on table Student
from u4
例如:将所有用户对表sc的查询权限收回
remove select
on table sc
from public
对于通过多次授权得到的权限,在收回的时候需要使用cascade关键字进行级联收回
例如:u3将对sc表的insert权限授权过给u4,u5,现在想要将u3的权限收回
remove insert
on table sc
from u3 cascade
数据库管理员在创建用户时实现
create user 用户名
WITH DBA|RESOURCE|CONNECT
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNtcLNys-1588862081168)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200503205715038.png)]
create role 角色名
例如:创建一个角色r1
create role r1
grant 权限1,权限2...
on 对象类型
to 角色1,角色2...
例如:使用grant语句,让角色r1拥有Student表的select、update、insert 权限
grant select,update,insert
on table Student
to R1
grant 角色1,角色2
to 角色3.../用户..
[with admin option]
例如:将R1角色授予王平、张明、赵玲,使他们具有r1所有包含的全部权限
grant R1
to 王平、张明、赵玲
在指定with admin option 语句之后,则获得某种权限的角色或用户还可以将这种权限授予其他角色
授权者是角色的创建者或者是拥有这个角色上的admin option
revoke 权限1,权限2
on 对象类型 对象名
from 角色1,角色2
例如:一次性通过收回R1来回收王平的3个权限
revoke R1
from 王平
revoke的执行者是角色的创建者或者是拥有这个角色上的admin option
使得角色R1在原来的基础上增加了Student表的delete权限
grant delete
on table Student
to R1
将R1减少select权限
renvoke select
on table Student
from R1
其中,主体的敏感度标记为许可证级别,客体的敏感度标记为密级
实现强制存取控制时要首先实现自主存取控制
自主存取控制与强制存取控制共同构成了数据库管理系统的安全机制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BHJvgbuw-1588862081171)(C:\Users\wangj\AppData\Roaming\Typora\typora-user-images\image-20200507101211160.png)]
把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定的安全保护
间接地实现支持存取谓词的用户权限定义
例如:建立计算机视图,把该视图的select权限授予给王平,并且把该视图上的所有操作权限都授予张明
1. 应该创建视图
create view CS_Studnet
as
select *
from Student
where Sdept = 'CS'
将视图的权限授予王平
grant select
on CS_select
to 王平
将所有权限授予张明
grant all privileges
on CS_Student
to 张明
Audit 设置审计功能
·例如:对修改SC表结构或者修改SC表数据的操作进行审计
audit alter,update
on SC
noAudit 取消审计功能
例如:取消对SC表的一切审计
noaudit alter,update
on SC
用户级审计
系统级审计
存储加密是一种透明存储加密、是一种内核级加密,对用户完全透明
将数据在写入磁盘的时候对数据进行加密,在授权用户读取数据时再对他进行解密
存储加密 只需要在创建表语句中说明需要加密的字段即可,不需要再数据库的应用进行任何的修改
优点:性能较好,安全完备性较高
在这里插入图片描述