oracle安全机制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle安全机制
安全性是评价一个数据库产品的重要指标,直接决定了数据库的优劣。Oracle数据库采用一系列的安全控制机制,以保证数据库的安全性。Oracle数据库在3个层次上采取安全控制机制。(1)系统安全性:在系统级别上控制数据库的存取和使用机制,包括有效的用户和口令、判断用户是否被授予权限可以连接数据库、用户创建数据库对象时可以使用的表空间大小、用户的资源限制、是否启动数据库的审计功能、用户可以进行哪些操作系统等。(2)数据安全性:在数据库模式对象级别上控制数据库的存取和使用机制,包括用户可以存取的模式对象以及在该对象上可以进行的操作等。用户要对某个模式对象进行操作,必须具有该对象相应的对象权限。(3)网络安全性:oracle数据库是网络数据库,因此网络数据库传输的安全性至关重要,主要包括登陆助手、目录管理、标签安全性等。Oracle通过分发Wallet、数字证书、SSL安全套接字和数据秘钥等办法来确保网络数据传输的安全性。
一、系统安全方面采取的安全机制包括用户管理、资源限制和口令管理、权
限管理、角色管理、审计、利用OEM进行安全管理。
1、用户管理
用户是数据库的使用者和管理者,Orcle数据库通过设置用户及其安全属性来控制用户对数据库的访问和操作。用户管理是Oracle数据库安全管理的核心和基础。Oracle数据库中的用户分为两类,一类是创建数据库时系统与定义的用户,而预定义的用户根据作用不同又可以分为三类:1、管理员用户,2、示例方案用户,3、内置用户;另一类是根据应用需要由DBA创建的用户。
可以通过查询数据字典视图dba_users,查看当前数据库中所有用户信息。
如下图所示显示open的用户是已经开启的用户,显示expired & locked的用户是已经过期或是锁定的用户
1.1用户属性
为了防止非授权用户对数据库进行操作,在创建数据库用户时,必须使用安全属性对用户进行限制。用户的安全属性包括以下几个方面:
●用户名:在同一数据库中,用户名必须唯一。并且用户名不能与角色名相
同。
●用户身份认证:Oracle数据库采用了多种用户身份认证方式,例如数据库
身份认证、外部认证、以及全局认证。
●默认表空间:用户创建数据库对象时,如果没有显示地指出该对象存储在哪
个表空间,系统会自动将该数据库对象存储在当前用户的默认表空间。
(表空间:Oracle数据库在逻辑上可以划分为一系列的区域,每一个区域称为一个表空间。表空间是Oracle数据库最大的逻辑存储结构,由一系列段构成。Oracle数据库对象就是以段的方式从表空间中获取存储空间
的。)
●临时表:保存临时数据信息的表。
●表空间配额:表空间配额限制用户在永久空间中可以使用的存储空间的大
小。
●概要文件:从会话级和调用级两个层次限制用户对数据库资源的使用,同时
设置用户的口令管理策略。
●设置用户的默认角色:通过设置默认角色,可以禁止或激活用户所具有的角
色。
●账户状态:创建用户的同时,可以设定用户的初始状态,包括用户口令是否
过期以及账户是否锁定等
1.2创建用户
如上图所示,创建用户chen 采用数据库认证,口令为chen ,默认表空间为users 该表空间配额为10MB ,默认临时表空间为temp ,初始状态不锁定。
如上图所示,创建用户如果不授权,该用户不能做任何操作,即便是连接数据库。只有给用户授予了create session 系统权限后,用户才可以连接数据库。
使用系统管理员登陆,授予用户chen 权限,才能使用户chen连接数据库。
如果口令设置为过期状态,即首次连接数据库时需要修改口令。
1.3用户身份认证
◎数据库身份认证将数据库的用户名与口令都保存在数据库内部,且口令以加密方式存储。当用户练级数据库时,需要提供用户名与口令信息,通过数据库认证后才能登陆。
◎外部身份认证用户账户由oracle数据库管理,但口令管理和身份验证由外部服务来完成。
◎全局身份认证采用oracle数据库的高级安全组件,利用LDAP目录服务器集中管理用户信息。当用户试图建立与数据库的连接时,oracle利用网络中的目录服务器中的信息对用户进行身份认证。
1.4修改用户
alter user user_name [identified][by password][…][account
lock|unlock]
1.5删除用户
drop user username [cascade];
1.6 查询用户
select username,account_status … from dba_users;
忘记密码的方法:打开cmd,输入sqlplus /nolog,回车;输入
“conn/ as sysdba”;输入“alter user sys identified by 新密码”,注意:新密码最好以字母开头,否则可能出现错误Ora-00988。有了这个方法后,只要自己对oracle服务器有管理员权限,不记得密码的时候就可以随意修改密码了。
sqlplus /nolog,conn /as sysdba 之所以能够登录,在于oracle登录时的身份认证方式。 oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。而conn /as sysdba是属于操作系统认证。为什么这样说呢?你当前电脑开机时登录的用户,也就是进入操作系统的用户,例如是gooooal,它在你电脑的ora_dba组中。可以在“我的电脑”单击右键,找到“管理”,选择“本地用户和组”,发现有一个组叫“ora_dba”,双击它,看到成员列表中“gooooal”。也就是在conn /as sysdba,oracle会进行操作系统验证,发现你当前登录的用户就属于ora_dba组,因此才可以登录成功。你可以把ora_dba组中的“gooooal”用户删除,再conn /as sysdba,就发现进不去了。