授权
SQL中使用grant 和 remove 语句向用户授权或收回对数据的操作权限。
grant语句向用户授予权限,remove语句收回已经授予用户的权限。
1.GRANT
grant语句的一般格式为:
grant <权限> on <对象类型><对象名> to <用户> whit grant option
补充:public表示全体用户。
如果指定了with grant option 子句,则获得某种权限的用户还可以把这种权限再授予其他用户。
例一:
把查询student授给用户U1。
grant select on table student to U1;
例二:
把student表和course表的全部操作权限授予用户U2和U3。
grant all privileges on table student, course to U2,U3;
例三:
把表student的insert权限授予U5用户,并允许将此权限再授予其他用户。
grant insert on table student to U5 with grant option;
2.REMOVE
remove语句的一般格式为:
remove<权限> on <对象类型><对象名> from <用户> [CASCADE]|[RESTRICT];
如果有连带关系则需要用CASCADE(级联)删除,否者系统拒执行该命令。
角色
概念:
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。
1.角色的创建
创建角色的格式是:
create role<角色名>
刚刚创建的角色是空的,没有任何内容。可以用grant为角色授权。
2.给角色授权
grant<权限> on <对象类型><对象名> to <角色>
3.将一个角色授予其他的角色或用户
grant<角色1><角色2> to <角色3> with admin option
如果指定了with admin option子句,则获得某种权限的角色或用户还可以把这种权限再授予其他角色。
4.角色权限的回收
remove<权限> on<对象类型><对象名> from <角色>
审计
概念:
审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。
审计功能就是数据库管理系统达到C2以上安全级别必不可少的一项指标。
1.审计事件
服务器事件:审计数据库服务器发生的事件,包含数据库服务器的启动、停止、数据库服务器配置文件的重新加载。
系统权限:对系统拥有的结构或模式对象进行操作的审计,要求该操作的权限是通过系统权限获得的。
语句事件:对SQL语句,如DDL、DML、DQL (Data Query Language,数据查询语言)及DCL语句的审计。
模式对象事件:对特定模式对象上进行的SELECT或DML操作的审计。模式对象包括表、视图、存储过程、函数等。模式对象不包括依附于表的索引、约束、触发器、分区表等。
2.审计功能
基本功能,提供多种审计查阅方式:基本的,可选的,有限的等等。
提供多套审计规则,审计规则一般在数据库初始化时设定,以方便审计员管理。
提供审计分析和报表功能。
系统提供查询审计设置及审计记录的信息的专门视图。
3.AUDIT语句和NOSAUDIT语句
AUDIT是用来设置审计功能的,NOAUDIT语句则是取消审计功能的。
例如:
对修改SC表结构或修改SC表数据的操作经行审计。
AUDIT alter , update no SC;
取消对SC表的一切审计。
NOAUDIT alter ,update on SC;