每个ORACLE用户:
- 一个唯一的用户名
- 一个验证的方法
- 一个默认的表空间
- 一个临时的表空间
- 一个用户的配置文件
- 一个消费组
- 一个锁的状态
用户名不能大于30bytes,不能包括特殊字符,必须从字母开始。
验证方法:最常见的就是密码验证。其他的如:biometric,certificate, token
默认的表空间:当用户没有指定对象的表空间,创建对象默认的空间。但是并不意味着在默认的表空间就有特殊的权限,创建对象或者分配空间等权限需要额外的赋予。
临时表空间:用来存放临时的对象。如:sorts和临时表
用户配置文件:分配给该用户的资源和密码的信息。
消费组:资源管理用
锁的状态:用户只能访问那些锁的状态是:unlocked的用户。
预定义的用户: sys , system
- sys用户
- 被赋予dba角色
- 拥有全部的权限,且带with admin option
- 用来启动,关闭和执行一些维护数据库的命令。
- 拥有数据字典
- 拥有AWR(Automatic Workload Respository)
sys用户可以执行connect as sysdba,只有被赋予sysdba 和sysoper权限的用户才可以启动和关闭数据库实例。
- system用户
- 被赋予dba角色
权限:
有两种类型的用户权限:
- system: 允许用户做特殊的数据库操作,如创建表空间,大概有100+ 的系统权限,许多都带有anny子句
- restricted session:(限制session)在数据库打开时以restricted mode, 允许有该权限的用户登陆
- sysdba and sysoper: 允许拥有该权限的用户来打开和关闭数据库,执行恢复和其他的管理。
- sysoper:
- Startup and shutdown
- create spfile
- alter database open/mount/backup
- alter database archivelog
- alter database recover(complete recover only.any incomplete recovery such as UNITL TIME|CHANGE|CANCEL|CONTROLFILE需要sysdba 权限。
- sysdba:允许用户以sys用户登陆
- drop any object:允许删除任何的用户对象
- create , manage,drop,alter tablespace:这些权限被用来做表空间的管理。如:创建,删除,和修改表空间的属性。
- create any directory: oracle数据库允许从pl/sql调用外部代码。该用户有读写数据库文件的权限,如数据文件,日志文件,审计文件。
- any object:该权限赋予你在所有对象上的权限。
- alter database 和alter system: 拥有该权限允许修改数据库和实例。如:重命名数据文件,flush buffer cache==.
- object: 允许用户赋予特定的object特定的权限
revoke system权限带有with admin option
-
dba赋予用户anlen create table权限with admin option
-
anlen 创建了一个表a
-
anlen赋予用户anny create table权限
-
anny创建了一个表b
-
dba revoke了anlen的create table权限。
结果表a,b仍然存在,但是anlen不能创建表,而anny仍然可以创建表。
revoke object 权限
-
anlen被赋予select权限在表a with admin option.
-
anlen 赋予anny select 权限在表a
-
anlen 在表a 的select 权限被revoke,那么anny的权限也消失了。
角色(role)的好处
-
更容易的权限管理:可以给角色赋予权限,然后再赋予用户该角色。
-
动态的权限管理:如果一个角色的权限改变了,所有拥有该角色的用户的权限都改变。
-
权限的可选性:可以通过禁用角色来改变用户的一些权限。
系统预定义的角色
- connect : 被赋予create session权限
-
resource: 被赋予create cluster, create indextype,create operator,create procedure,create sequence,create table,create trigger,creat type权限。注意赋予unlimited tablespace的情况。
-
scheduler_admin: 被赋予create any job,create external job, create job,execute any class,execute any program,manage scheduler权限。
-
dba: 被赋予大多数的系统权限和一些角色。
-
select_catalog_role: 没有系统权限,但被赋予hs_admin_role和超过1700 个数据字典对象的权限。
其他的角色:
- xdbadmin: 被赋予管理XML数据库的权限。
- AQ_ADMINISTRATOR_ROLE: 被赋予管理AQ的权限。
- HS_admin_ROLE:赋予管理各种不同的服务的权限。
安全化角色:
- 角色应该被取消默认 :set role ****
- 角色应当使用验证
- 角色可以使用程序验证:如procedure来检查用户的网络地址,用户当前使用的程序,时间等等。
用户配置文件:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20945761/viewspace-588856/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20945761/viewspace-588856/