当前位置:文档之家› 用户、权限和角色管理

用户、权限和角色管理


禁用操作系统以后,只能使用口令文件登陆。 因为sysdba只有两种认证方式。
目前使用口令文件只允许Oracle用户。
显然可以使用口令文件进行认 证了,但是目前为止只能sys用 户使用口令文件。
修改了参数以后,权限不够了。
因为OS和口令文件全部禁止了,因此没有办法启动数据库了,只 能修改OS认证了。
因为sys的权限太大,使用sysdba登陆以后,审计文件会记录登录的时间信 息,system没有sys的权限大
最通常的用法是:日常管理中,不要使用sys和system登录数据库,而是建 立一个用户、并赋予DBA角色,使用该用户进行日常的管理工作
创建用户
口令是最常见的认证方式。
CREATE USER "SYSADMIN" PROFILE "DEFAULT" IDENTIFIED BY "*******" PASSWORD EXPIRE DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK GRANT "CONNECT" TO "SYSADMIN&#启动或者未能成功的解锁。 找到被删除的那个进程的PADDR
用户管理的一些选项
1、唯一的用户名、字母开头、不包括特殊字符、最长30个
2、要有一种认证方式,通常采用密码认证,也就是登录时提供用户名和密码
3、默认表空间
Oracle10g中定义了一个数据库级别的默认表空间,如果用户没有定 义默认表空间,那么就使用这个作为自己的默认表空间,10g以前,如果出现 这种情况,那么就是用system表空间,这显然不合理,因此建立一个数据库 级别的表空间还是很有意义的
要启用口令文件认证,需要设置口令文件和配置上面的remote参数 默认只有sys可以使用口令文件。
密码文件丢失的情况
可以重建口令文件。
sysadmin也进入了口令文件中。
用户sysadmin也可以在数据库没有启动的情况下,使用口令文件进行认证了。
用户sys的密码存在口令文件和数据字典中,修改了密码以后,会同时更新两个 地方的密码。
unix上位于$ORACLE_HOME/dbs windows上位于$ORACLE_HOME/database
SID为小写,那么口令文件中的orapwSID 中的SID也要小些,两者必须相同,而且 区分大小写。
在WINDOWS平台下面,口令文件是PWDSID,SID也要遵循大小写。
上面建立了一个口令文件,这个口令文件可以允许5个不同的oracle用户拥有 sysdba权限。
4、默认临时表空间
临时表空间最经典的使用就是排序的时候,PGA容纳不了排序所产 生的临时数据,9i开始可以指定数据库级别的默认临时表空间
5、配置文件
用来控制用户密码策略、以及资源使用的配置信息
6、用户组
7、锁定状态
数据库建立以后,会产生两个重要的用户:sys和system
sys是超级管理员,必须作为sysdba登陆,这是安全措施
操作系统认证
密码文件认证
操作系统认证 unix下面,如果用户属于DBA组,那么用户登录操作系统后就可以使 用sysdba进行登录 windows下面,如果用户属于ora_dba组,那么用户登录操作系统以 后,可以使用sysdba进行登录
如果用户属于oinstall组,不能进行操作系统认证。
如果用户属于DBA组,那么就可以使用操作系统认证,使用DBA角色登 录数据库。在这方面,我们使用最多的就是Oracle用户。
2、设置初始化参数
NONE:不能进行密码文件认证,Oracle未启动的情况下,远程用户没有办法通 过网络服务的方式以SYSDBA权限登录到Oracle数据库。 EXCLUSIVE:默认值,该密码只能被一个实例使用,我们可以向密码文件中添 加新的用户 SHARED:该密码文件可以被多个实例使用(用于RAC),但是密码文件里面 只能存放sys和system用户的密码
不需要使用用户名和密 码就可以直接登录。
这就是一个反例,如果在数据 库里面没有建立相应的用户名, 不能使用外部认证。
1、对于普通用户来说,账号存储在数据字典的表里面,数据库没有启动以前, 不能对用户进行认证。
2、对sys用户的认证方式有些特殊,因为sys用户需要在数据库还没有启动的情 况下进行登录,对sys用户的认证主要有两种方式
口令文件中可以存放多个用户,这些用户都可以使用sysdba在数据 库没有启动的情况下登录数据库。
建立了一个用户shd,给这个用户分配 了连个权限。
另起一个会话,使用shd登陆,建立一个用户。
这个用户不能够被删除,因为这个用户正在连接中。 如何强行中断呢?
等一会,PMON会启动起来,从而清理中断的session所占用的资源。
看一下外部认证(操作系统认证的例子)
一个操作系统用户的账号是ora,那么在数据库里面需要建立一个用户叫做 ops$ora,这个用户登陆操作系统以后,就可以直接登陆数据库了。因为操作 系统已经认证了这个用户。
CREATE USER "OPS$ORA" PROFILE "DEFAULT" IDENTIFIED EXTERNALLY DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK GRANT "CONNECT" TO "OPS$ORA"
上面的认证需要我们的用户登陆Oracle所在的数据库服务器上。
是否使用操作系统认证,还取决于一个设置
这个文件中有这么一条记录,或者没有这么一条记录。那么就表示可以使用 操作系统进行认证。
如果改成NONE,那么表示不能使用操作系统进行认证。
改回来以后,不需要重启什么 服务,就直接可以进行连接了。
远程登录Oracle,如何实现sys认证,就需要使用口令文件。 远程登录,必须提供sys的密码,这是安全要求。但是密码又不能存放在数 据字典表里面,只能存放在另外一个位置,那就是密码文件。 1、在服务器上建立一个密码文件
相关主题