首页 > 代码库 > [转]Oracle DB 用户

[转]Oracle DB 用户

? 创建和管理数据库用户帐户:
– 验证用户
– 分配默认存储区(表空间)
 
 
 
1、数据库用户帐户
 
 
要访问数据库,用户必须指定有效的数据库用户帐户,而且还要根据该用户帐户的要求成功通过验证。每个数据库用户都有一个唯一的数据库帐户
Oracle 建议采用这种做法,从而避免潜在的安全漏洞,并为特定的审计活动提供有意义的数据。但是,有时候若干用户会共享一个公用数据库帐户。
在这些罕见的情况下,操作系统和应用程序必须为数据库提供足够的安全性。
 
 
每个用户帐户都包括以下项:
? 唯一的用户名:用户名不能超过30 个字节,不能包含特殊字符,而且必须以字母开头。
 
? 验证方法:最常见的验证方法是口令,但是Oracle Database 11g支持其它多种验证方法,包括生物统计学验证、证书验证和标记验证。
 
? 默认表空间:如果用户未指定其它表空间,则可在这个位置创建对象。
请注意,具有默认表空间并不意味着用户在该表空间具有创建对象的权限,也不意味着用户在该表空间中具有用于创建对象的空间限额。
这两项需要另外单独授权。
 
? 临时表空间:这是实例代表用户创建临时对象(如排序和临时表)的位置。临时表空间没有限额。
 
? 用户概要文件:分配给用户的一组资源与口令的限制。
 
? 初始使用者组:由资源管理器使用。
 
? 帐户状态:用户只可访问“开放”帐户。account_status可能是“锁定”和“失效”的各种组合。
 
注:数据库用户不一定是人员。常见的作法是创建一个拥有特定应用程序的数据库对象的用户,例如HR。数据库用户可以是设备、应用程序或只是一种出于安全目的而对数据库对象进行分组的方法。
数据库用户不需要具有个人身份信息。
 
 
2、预定义帐户:SYS和SYSTEM
? SYS帐户:
– 被授予了DBA 角色
– 具有ADMIN OPTION的所有权限
– 执行启动、关闭和某些维护命令时需要使用的帐户
– 拥有数据字典
– 拥有自动工作量资料档案库(AWR:Automatic Workload Repository)
? SYSTEM帐户被授予DBA 角色。
? 不在例行操作(routine operations)中使用这两个帐户。
 
 
默认情况下,SYS和SYSTEM帐户被授予了数据库管理员(DBA) 角色。
此外,SYS帐户还具有ADMIN OPTION的所有权限,而且拥有数据字典。
要连接到SYS帐户,对于数据库实例,必须使用AS SYSDBA子句,对于Automatic Storage Management (ASM) 实例,必须使用AS SYSASM子句。
被授予了SYSDBA权限的任何用户均可通过使用AS SYSDBA子句连接到SYS帐户。只有被授予了SYSDBA、SYSOPER或SYSASM权限的“授权”用户才能启动或关闭实例。
默认情况下,SYSTEM帐户被授予了DBA角色,而不是SYSDBA权限。
最佳方案提示:如果应用最少权限原则,则不在例行操作中使用这些帐户。需要DBA 权限的用户具有被授予了所需权限的独立帐户。例如,Jim 有一个名为jim的低权限帐户及一个名为jim_dba的授权帐户。使用此方法可应用最少权限原则,不需要共享帐户,而且可审计各项操作。
SYS和SYSTEM帐户是数据库所必需的帐户,不能将其删除。
 
 
3、创建用户
 
选择“Server > Users(服务器> 用户)”,然后单击“Create(创建)”按钮。
也可以简单实用sql来创建用户:create user test identified by test account unlock;
 
 
 
 
 
在Enterprise Manager 的“Users(用户)”页中,可以管理能够访问当前数据库的数据库用户的列表。使用此页可创建、删除和修改用户的设置。
 
要创建数据库用户,请执行以下操作:
1.在Enterprise Manager Database Control 中,单击“Server(服务器)”选项卡,然后在“Security(安全)”部分中单击“Users(用户)”。
2.单击“Create(创建)”按钮。
提供所需的信息。必需项带有星号(*) 标记,如“Name(名称)”。
 
 
每一个用户可以分配默认表空间和临时表空间。如果用户在创建对象时未指定表空间,则将在分配给对象所有者的默认表空间中创建对象。这样,便可以控制用户对象的
创建位置。
如果未选择默认表空间,则使用系统定义的默认永久表空间。对于临时表空间也是如此:如果未指定临时表空间,则使用系统定义的临时表空间。
 
 
4、验证用户
 
? 口令
? 外部验证
? 全局验证
 
 
“验证”是指对要使用数据、资源或应用程序的人员或对象(用户、设备或其它实体)的身份进行验证。通过对该身份进行验证可建立一种信任关系,以进行进一步的交互。通过验证可将访问和操作与特定的身份联系起来,从而增强安全性。完成验证后,授权进程会允许或限制该实体能够执行的访问和操作的级别。
创建用户时,必须确定要使用的验证方法,以后可修改此方法。
 
 
口令:又称为Oracle DB 验证。创建的每一个用户都有一个关联口令,用户尝试建立连接时,必须提供这个口令。设置口令时,可以使该口令立即失效,这会强制用户在首次登录后更改口令。如果决定要使用户口令失效,请确保用户能够更改口令。有些应用程序不具备此功能。默认情况下,在Oracle Database 11g中创建的所有口令都区分大小写。这些口令还可以包含多字节字符,但长度被限制为30 字节。在更改之前,在升级到Oracle Database 11g的数据库中创建的每个口令仍然不区分大小写。在网络(客户机/服务器和服务器/服务器)连接期间,系统总是先使用高级加密标准(AES) 算法以自动且透明的方式对口令进行加密,然后再通过网络发送这些口令。
 
数据库验证,使用sql语言如下:
sys@TEST0924> create user aaron identified bysoccer
2 default tablespace users
3 temporary tablespace temp
4 account unlock
5 /
 
User created.
 
 
外部验证:这是使用数据库外部的方法(操作系统、Kerberos 或Radius)执行的验证。Kerberos或Radius 需要使用高级安全选件。用户可以在不指定用户名或口令的情况下连接到Oracle DB。借助于执行严格验证的高级安全选件,系统可以通过使用生物统计学、x509 证书和标记设备来识别用户。使用外部验证时,数据库依赖基础操作系统、网络验证服务或外部验证服务来限制对数据库帐户的访问。对于此类登录不会使用数据库口令。
 
如果操作系统或网络服务允许的话,可以使用外部验证来验证用户。如果使用操作系统验证,请设置OS_AUTHENT_PREFIX初始化参数,并在Oracle 用户名中使用前缀。OS_AUTHENT_PREFIX参数定义了一个前缀,Oracle DB 会在每个用户的操作系统帐户名之前添加此前缀。为了实现与Oracle 软件早期版本的向后兼容,此参数的默认值为OPS$。
 
 
sys@TEST0924> show parameter OS_AUTHENT_PREFIX
 
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix string ops$
 
 
用户尝试建立连接时,Oracle DB 会将带前缀的用户名与数据库中的Oracle 用户名进行比较。例如,假定OS_AUTHENT_PREFIX设置如下:
OS_AUTHENT_PREFIX=OPS$ ,如果某个用户的操作系统帐户名为tsmith,该用户需要连接到Oracle DB 并且已由操作系统进行验证,则Oracle DB 会检查是否存在对应的数据库用户OPS$tsmith,如果存在这样的用户,则允许该用户建立连接。在对用户(操作系统已对其进行了验证)的所有引用中必须包含OPS$tsmith中显示的前缀。
注:在某些操作系统中,OS_AUTHENT_PREFIX初始化参数的文本是区分大小写的。
 
 
操作系统验证,使用SQL语言如下:
sys@TEST0924> create user aaron1 identified externally
2 default tablespace users
3 temporary tablespace temp
4 account unlock
5 /
 
User created.
 
 
全局验证:使用Oracle 高级安全选件时,可使用Oracle Internet Directory 通过全局验证来识别用户。
 
 
 
5、管理员验证
操作系统安全性:
? DBA 必须具有创建或删除文件的操作系统权限。
? 普通数据库用户不应具有创建或删除数据库文件的操作系统权限。
 
管理员安全性:
? 对于SYSDBA、SYSOPER和SYSASM连接:
– 使用口令文件和严格验证方法时,按名称审计DBA 用户
– 使用操作系统验证时,审计操作系统帐户名
– 对于授权用户,操作系统验证优先于口令文件验证
– 口令文件使用区分大小写的口令
 
 
操作系统安全性:在UNIX 和Linux 中,DBA 默认情况下属于install操作系统组,该组具有创建和删除数据库文件所需的权限。
管理员安全性:只有在使用口令文件或操作系统权限进行验证后,才允许授权用户SYSDBA、SYSOPER和SYSASM建立连接。
如果使用操作系统验证,则数据库不使用提供的用户名和口令。
 
当口令文件不存在,或者该文件中不存在提供的用户名和口令,或者未提供用户名和口令时,将使用操作系统验证。
默认情况下,Oracle Database 11g中的口令文件使用区分大小写的口令。
 
但是,如果使用口令文件成功完成了验证,则使用用户名记录连接。如果使用操作系统成功完成了验证,则表示这是一个CONNECT /连接,这种连接不记录具体用户。
 
注:操作系统验证优先于口令文件验证。具体说来,如果您是操作系统中的OSDBA或OSOPER组的成员,而且以SYSDBA、SYSOPER或SYSASM身份进行连接,则会使用关联的管理权限为你建立连接,不管你指定的用户名和口令是什么。
在Oracle Database 11g中,授权用户可以使用严格验证方法:Kerberos、SSL 或目录验证(如果可以使用高级安全选件)。
 
 
6、解除用户帐户的锁定并重置口令
 
 
 
 
在安装和创建数据库的过程中,可以对Oracle 提供的多个数据库用户帐户解除锁定,并对其进行重置。如果在此期间未选择解除对用户帐户的锁定,则可以在“Users(用户)”页上选择用户,从“Actions(操作)”列表中选择“Unlock User(解除用户的锁定)”,然后单击“Go(执行)”,以此解除对用户的锁定。这并不会更改口令。如果在解除对用户的锁定时口令已失效,则在编辑用户并更改口令之前,口令将一直处于失效状态。
 
或者使用sql语言:
sys@TEST0924> alter user bi account unlock;
 
User altered.
 
 
要解除对用户的锁定并重置口令,请在“Edit Users(编辑用户)”页上执行下列步骤:
 
 
1.在“Enter Password(输入口令)”和“Confirm Password(确认口令)”字段中输入新口令。
2.选中“Unlocked(解除锁定)”复选框。
3.单击“Apply(应用)”,重置口令并解除对用户帐户的锁定。
 
 
或者使用sql语言:
sys@TEST0924> alter user bi identified by bi account unlock;
 
User altered.
 
来源:http://blog.csdn.net/rlhua/article/details/12272827