数据库权限管理
权限是用户对一项功能的执行权利,在oracle中,根据系统管理方式的不同,可将权限分为系统权限与对象权限两类
系统权限
系统权限是指被授权用户是否可以连接到数据库上及数据库中可以进行哪些系统操作,系统权限是在数据库中执行某种系统疾病的操作,
或者针对某一类别的对象执行某种操作的权利,如,在数据库中创建表空间的权利或者在数据库中创建表的权利,这些都属于系统权限
常见的系统权限如下:
- create session :连接到数据库
- create table:创建表
- create view:创建视图
- create sequence:创建序列
对象权限
对象权限是指用户对数据库中具体对象所拥有的权限,对象权限针对某个特定的模式对象执行操作的权利,只能针对模式来设置和管理
对象权限,如数据库中的表,视图,序列,存储过程,存储函数等
oracle数据库用户有两种途径获得权限
- 管理员直接向用户授予权限。
- 管理员将权限授予角色,然后再将角色授予一一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以数据库管理员通常使用角色向用户授予权限,而不是直接向用户授予权限。在
Oracle数据库系统中预定义了很多的角色,其中最常用的有CONNECT角色、RESOURCE角色、DBA角色等。一般程序使用的用户只要授
予CONNECT和RESOURCE两个角色即可。DBA角色具有所有的系统权限,并且可以给其他用户、角色授权。
Oracle中常用的系统预定义角色如下。
- CONNECT:需要连接上数据库的用户,特别是那些不需要创建表的用户.通常授予该角色,可对数据进行增删改查。
- RESOURCE:更为可靠和正式的数据库用户可以授予该角色,可以创建表、触发器、过程等。
- DBA.数据库管理员角色,拥有管理数据库的最高权限。一个具有DBA角色的用户可以撤销任何其他用户甚至其他DBA权限,这是很危险的,所以不要轻易授予该角色。
新创建的用户必须授予一定的权限才能进行相关数据库操作。授权通过GRANT请句来实现,而取消授权则通过REVOKE语句实现。
授予权限语法:GRANT 权限|角色 to 用户名
撤销权限语法:revoke 权限|角色 from 用户名
grant connect,resource to martin --授予connect和resource两个角色 revoke connect,resource from martin --撤销connect和resource两个角色 grant select,scott.emp to martin --允许用户查看emp表中的记录 grant update,scott.emp to martin --允许用户更新emp表中的记录
数据库安全设计原则
- 数据库用户权限权限按照最小分配原则
- 数据库用户分为管理,应用,维护,备份四类用户
- 不允许使用SYS和system用户建立数据库应用对象
- 禁止grant dba to user