Oracle 用户管理
一、
用户的概念
用户,即user,通俗的讲就是访问oracle
数据库的“人”。在oracle中,可以对
用户的各种安全参数进行控制,以维护
数据库的安全性,这些概念
包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制、
数据库审计等。每个
用户都有一个口令,使用正确的
用户/口令才能
登录到
数据库进行数据存取。
二、
用户默认表空间
表空间是信息存储的最大逻辑单位、当
用户连接到
数据库进行资料存储时,若未指出数据的目标存储表空间时,则数据存储在
用户的默认表空间中。比如:create table mytable(id varchar2(20),name varchar2(100));这条语句创建了一个表mytable,并将其存储在当前
用户的默认表空间中,若要指定表空间,则:create table mytable(id varchar2(20),name varchar2(100)) tablespace tbs1;。
用户的默认表空间可以在创建
用户时指定,也可以使用aler user命令进行指定,具体语法见后面的介绍。
三、
用户临时表空间
临时表空间主要用于order by语句的排序以及其它一些中间操作。在oracle9i之前,可以指定
用户使用不同的临时表空间,从9i开始,临时表空间是通用的,所的
用户都使用TEMP作为临时表空间。
四、
用户资源
文件
用户资源
文件用来对
用户的资源存取进行限制,
包括:
cpu使用时间限制、内存逻辑读个数限制、每个
用户同时可以连接的会话数据限制、一个会话的空间和时间限制、一个会话的持续时间限制、每次会话的专用SGA空间限制。
五、
用户表空间限额
表空间存储限制是
用户在某一个表空间中可以使用的存储空间总数。在创建或
修改用户时,可以由参数quota指出。若
用户在向表空间存储数据时,超出了此限额,则会产生
错误。
错误信息如:'ORA-01536:space quota exceeded for tablespace tablespacename..'。可以通过
查询字典dba_ts_quotas查看表空间限额信息。
六、创建
用户资源
文件
创建
用户资源
文件的语法如下:
CREATE PROFILE filename LIMIT
SESSION_PER_USER integer
cpu_PER_SESSION integer
USER_PER_CALL integer
CONNECT_TIME integer
......
基中:
SESSION_PER_USER:
用户可以同时连接的会话
数量限额;
cpu_PER_SESSION:
用户在一次
数据库会期间可占用的
cpu时间总量限额,单位为百分之一秒;
USER_PER_CALL:
用户一次SQL
调用可用的CPU时间总量限额,单位为百分之一秒;
LOGICAL_READS_PER_SESSION:在一次
数据库会话期间能够读取的
数据库块的个数限额;
LOGICAL_READS_PER_CALL:一次SQL
调用可以读取的
数据库块数限额;
IDLE_TIME:
用户连接到
数据库后的可空闲时间限额,单位为分钟,若空闲时间超过此值,则连接被断开;
CONNECT_TIME:一次连接的时间总量限额,单位为分钟,连接时间超过此值时,连接被断开;
PRIVATE_SGA:
用户么有的SGA区的大小,单位为
数据库块,默认值为UNLIMITED;
COMPOSITE_LIMIT:这是一项由上述限制参数构成的组合资源项。举例来说,假设资源设置如下:
IDLE_TIME 20
CONNECT_TIME 120
cpu_PER_CALL 750
COMPOSITE_LIMT 800
那么,当会话空间超过20分钟,或者连接时间超过120分钟,又或者执行一个SQL耗费超过7.5秒,再或者这几个资源限制加起来的总数超过800,则系统
自动终止会话。
Failed_LOGIN_ATTEMPTS:
用户登录时,允许
用户名/密码校验失败致使用
登录失败的
次数限额,超过该
次数,帐户被锁定;
PASSWORD_LIFE_TIME:口令有效时间,单位为天数,超过这一时间,拒绝
登录,须重新设置口令,默认值为UNLIMITED;
PASSWORD_REUSE_TIME:一个失效口令经过多少天后才可重新利用,默认为UNLIMITED;
PASSWORD_REUSE_MAX:一个口令可重复使用的
次数;
PASSWORD_LOCK_TIME:当
登录失败达到
Failed_LOGIN_ATTEMPS时,帐户被锁定,该参数用于设定被锁定的天数;
下面举例如下:
1)创建一个
用户资源
文件
create profile tax_users limit
session_per_user 3
cpu_per_session UNLIMITED
connect_time 30
logical_reads_per_session DEFAULT
logical_reads_per_call 1000
private_sga 15K
composite_limit 500000
password_life_time 90
2)
查询用户资源
文件信息
sql>select *from dba_profile where profile = 'tax_users'
3)指定
用户资源
文件给
用户
sql>alter user us1 profile tax_users
七、创建、
修改、
删除用户
1.创建
用户
创建
用户的详细语法请
查询oracle的官方参数文档,这里介绍典型的语法。语法如下:
CREATE USER username
IDENTIFIED BY password
DEFAULT TABLESPACE tablespace
TEMPORARY TABLESPACE tablespace
PROFILE profile
QUOTA integer|UNLIMITED ON tablespace
各选项含义如下:
IDENTIFIED BY password:
用户口令;
DEFAULT TABLESPACE tablespace:默认表空间;
TEMPORARY TABLESPACE tablespace:临时表空间;
PROFILE profile|DEFAULT:
用户资源
文件;
QUOTA integer[K|M]|UNLIMITED ON tablespace:
用户在表空间上的空间使用限额,可以指定多个表空间的限额。
举例:
CREATE USER us1 IDENTITIED BY abc123
DEFAULT TABLESPACE user01
TEMPORARY TABLESPACE temp
PROFILE DEFAULT
QUOTA 1000M ON user01;
2.
修改用户
修改用户的语法是与创建
用户的语法类似的,主要是CREATE USER 变成 ALTER USER,具体请参考oracle文档。
3.
删除用户
删除用户,是将
用户及
用户所创建的schema对象从
数据库删除。如下:
sql>DROP USER us1;
若
用户us1含有schema对象,则无上述语句将执行失败,须加入关键字CASCADE才能
删除,意思是连并其对象一起
删除,如下:
sql>DROP USER us1 CASCADE;
一、
用户的概念
用户,即user,name varchar2(100)) tablespace tbs1;。
用户的默认表空间可以在创建
用户时指定,也可以使用aler user命令进行指定,具体语法见后面的介绍。
三、
用户临时表空间
临时表空间主要用于order by语句的排序以及其它一些中间操作。在oracle9i之前,可以指定
用户使用不同的临时表空间,从9i开始,临时表空间是通用的,所的
用户都使用TEMP作为临时表空间。
四、
用户资源
文件
用户资源
文件用来对
用户的资源存取进行限制,
包括:
cpu使用时间限制、内存逻辑读个数限制、每个
用户同时可以连接的会话数据限制、一个会话的空间和时间限制、一个会话的持续时间限制、每次会话的专用SGA空间限制。
五、
用户表空间限额
表空间存储限制是
用户在某一个表空间中可以使用的存储空间总数。在创建或
修改用户时,可以由参数quota指出。若
用户在向表空间存储数据时,超出了此限额,则会产生
错误。
错误信息如:'ORA-01536:space quota exceeded for tablespace tablespacename..'。可以通过
查询字典dba_ts_quotas查看表空间限额信息。
六、创建
用户资源
文件
创建
用户资源
文件的语法如下:
CREATE PROFILE filename LIMIT
SESSION_PER_USER integer
cpu_PER_SESSION integer
USER_PER_CALL integer
CONNECT_TIME integer
......
基中:
SESSION_PER_USER:
用户可以同时连接的会话
数量限额;
cpu_PER_SESSION:
用户在一次
数据库会期间可占用的
cpu时间总量限额,单位为百分之一秒;
USER_PER_CALL:
用户一次SQL
调用可用的CPU时间总量限额,单位为百分之一秒;
LOGICAL_READS_PER_SESSION:在一次
数据库会话期间能够读取的
数据库块的个数限额;
LOGICAL_READS_PER_CALL:一次SQL
调用可以读取的
数据库块数限额;
IDLE_TIME:
用户连接到
数据库后的可空闲时间限额,单位为分钟,若空闲时间超过此值,则连接被断开;
CONNECT_TIME:一次连接的时间总量限额,单位为分钟,连接时间超过此值时,连接被断开;
PRIVATE_SGA:
用户么有的SGA区的大小,单位为
数据库块,默认值为UNLIMITED;
COMPOSITE_LIMIT:这是一项由上述限制参数构成的组合资源项。举例来说,假设资源设置如下:
IDLE_TIME 20
CONNECT_TIME 120
cpu_PER_CALL 750
COMPOSITE_LIMT 800
那么,当会话空间超过20分钟,或者连接时间超过120分钟,又或者执行一个SQL耗费超过7.5秒,再或者这几个资源限制加起来的总数超过800,则系统
自动终止会话。
Failed_LOGIN_ATTEMPTS:
用户登录时,允许
用户名/密码校验失败致使用
登录失败的
次数限额,超过该
次数,帐户被锁定;
PASSWORD_LIFE_TIME:口令有效时间,单位为天数,超过这一时间,拒绝
登录,须重新设置口令,默认值为UNLIMITED;
PASSWORD_REUSE_TIME:一个失效口令经过多少天后才可重新利用,默认为UNLIMITED;
PASSWORD_REUSE_MAX:一个口令可重复使用的
次数;
PASSWORD_LOCK_TIME:当
登录失败达到
Failed_LOGIN_ATTEMPS时,帐户被锁定,该参数用于设定被锁定的天数;
下面举例如下:
1)创建一个
用户资源
文件
create profile tax_users limit
session_per_user 3
cpu_per_session UNLIMITED
connect_time 30
logical_reads_per_session DEFAULT
logical_reads_per_call 1000
private_sga 15K
composite_limit 500000
password_life_time 90
2)
查询用户资源
文件信息
sql>select *from dba_profile where profile = 'tax_users'
3)指定
用户资源
文件给
用户
sql>alter user us1 profile tax_users
七、创建、
修改、
删除用户
1.创建
用户
创建
用户的详细语法请
查询oracle的官方参数文档,这里介绍典型的语法。语法如下:
CREATE USER username
IDENTIFIED BY password
DEFAULT TABLESPACE tablespace
TEMPORARY TABLESPACE tablespace
PROFILE profile
QUOTA integer|UNLIMITED ON tablespace
各选项含义如下:
IDENTIFIED BY password:
用户口令;
DEFAULT TABLESPACE tablespace:默认表空间;
TEMPORARY TABLESPACE tablespace:临时表空间;
PROFILE profile|DEFAULT:
用户资源
文件;
QUOTA integer[K|M]|UNLIMITED ON tablespace:
用户在表空间上的空间使用限额,可以指定多个表空间的限额。
举例:
CREATE USER us1 IDENTITIED BY abc123
DEFAULT TABLESPACE user01
TEMPORARY TABLESPACE temp
PROFILE DEFAULT
QUOTA 1000M ON user01;
2.
修改用户
修改用户的语法是与创建
用户的语法类似的,主要是CREATE USER 变成 ALTER USER,具体请参考oracle文档。
3.
删除用户
删除用户,是将
用户及
用户所创建的schema对象从
数据库删除。如下:
sql>DROP USER us1;
若
用户us1含有schema对象,则无上述语句将执行失败,须加入关键字CASCADE才能
删除,意思是连并其对象一起
删除,如下:
sql>DROP USER us1 CASCADE;
本文来自CSDN
博客,转载请标明出处:http://blog.csdn.net/truexf/archive/2006/09/06/1184869.aspx
ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*:有关
用户所拥有的对象信息,即
用户自己创建的对象信息
ALL_*:有关
用户可以访问的对象的信息,即
用户自己创建的对象的信息
加上其他
用户创建的对象但该
用户有权访问的信息
DBA_*:有关整个
数据库中对象的信息
(这里的*可以为TABLES, INDEXES, OBJECTS, USERS等。
1.查看所有
用户:
select * from dba_user;
select * from all_users;
select * from user_users;
2.查看
用户系统权限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看
用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看
用户所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
6.查看当前
用户的缺省表空间
select username,default_tablespace from user_users;
7.查看某个角色的具体权限,如grant connect,resource,create session,create view to TEST;查看RESOURCE具有那些权限,用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
例:
限制user1
用户只允许100个并发连接
sql> alter system set resource_limit=true;
System altered
sql> create profile profile_user1 limit sessions_per_user 100;
Profile created
sql> ALTER USER user1 profile profile_user1;
User altered
========
Oracle用户、权限、角色管理
Oracle 权限设置
一、权限
分类:
系统权限:系统规定
用户使用
数据库的权限。(系统权限是对
用户而言)。
实体权限:某种权限
用户对其它
用户的表或视图的存取权限。(是针对表或视图而言的)。
二、系统权限管理:
1、系统权限
分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建
数据库结构。
RESOURCE:拥有Resource权限的
用户只可以创建实体,不可以创建
数据库结构。
CONNECT:拥有Connect权限的
用户只可以
登录Oracle,不可以创建实体,不可以创建
数据库结构。
对于普通
用户:授予connect,resource权限。
对于DBA管理
用户:授予connect,resource,dba权限。
2、系统权限授权命令:
[系统权限只能由DBA
用户授出:sys,system(最开始只能是这两个
用户)]
授权命令:
sql> grant connect,dba to
用户名1 [,
用户名2]...;
[普通
用户通过授权可以具有与system相同的
用户权限,但永远不能达到与sys
用户相同的权限,system
用户的权限也可以被回收。]
例:
sql> connect system/manager
sql> Create user user50 identified by user50;
sql> grant connect,resource to user50;
查询用户拥有哪里权限:
sql> select * from dba_role_privs;
sql> select * from dba_sys_privs;
sql> select * from role_sys_privs;
删除用户:
sql> drop user
用户名 cascade; //
加上cascade则将
用户连同其创建的东西全部
删除
3、系统权限传递:
增加WITH ADMIN OPTION选项,则得到的权限可以传递。
sql> grant connect,resorce to user50 with admin option; //可以传递所获权限。
4、系统权限回收:系统权限只能由DBA
用户回收
命令:
sql> Revoke connect,resource from user50;
说明:
1)如果使用WITH ADMIN OPTION为某个
用户授予系统权限,那么对于被这个
用户授予相同权限的所有
用户来说,取消该
用户的系统权限并不会级联取消这些
用户的相同权限。
2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨
用户回收,即A可以直接收回C
用户的权限。
三、实体权限管理
1、实体权限
分类:select,update,insert,alter,index,delete,all //all
包括所有权限
execute //执行存储过程权限
user01:
sql> grant select,insert on product to user02;
sql> grant all on product to user02;
user02:
sql> select * from user01.product;
// 此时user02查user_tables,不
包括user01.product这个表,但如果查all_tables则可以查到,因为他可以访问。
2. 将表的操作权限授予全体
用户:
sql> grant all on product to public; // public表示是所有的
用户,这里的all权限不
包括drop。
[实体权限数据字典]:
sql> select owner,table_name from all_tables; //
用户可以
查询的表
sql> select table_name from user_tables; //
用户创建的表
sql> select grantor,table_schema,table_name,privilege from all_tab_privs; // 获权可以存取的表(被授权的)
sql> select grantee,owner,privilege from user_tab_privs; // 授出权限的表(授出的权限)
3. DBA
用户可以操作全体
用户的任意基表(无需授权,
包括删除):
DBA
用户:
sql> Create table stud02.product(
id number(10),
name varchar2(20));
sql> drop table stud02.emp;
sql> create table stud02.employee
as
select * from scott.emp;
4. 实体权限传递(with grant option):
user01:
sql> grant select,update on product to user02 with grant option; // user02得到权限,并可以传递。
5. 实体权限回收:
user01:
sql>Revoke select,update on product from user02; //传递的权限将全部丢失。
说明
1)如果取消某个
用户的对象权限,那么对于这个
用户使用WITH GRANT OPTION授予权限的
用户来说,同样还会取消这些
用户的相同权限,也就是说取消授权时级联的。
Oracle
用户管理
一、创建
用户的Profile
文件
sql> create profile student limit // student为资源
文件名
Failed_LOGIN_ATTEMPTS 3 //指定锁定
用户的
登录失败
次数
PASSWORD_LOCK_TIME 5 //指定
用户被锁定天数
PASSWORD_LIFE_TIME 30 //指定口令可用天数
二、创建
用户
sql> Create User username
Identified by password
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
例:
sql> Create user acc01
identified by acc01 // 如果密码是数字,请用双引号括起来
default tablespace account
temporary tablespace temp
profile default
quota 50m on account;
sql> grant connect,resource to acc01;
[*]
查询用户缺省表空间、临时表空间
sql> select username,default_tablespace,temporary_tablespace from dba_users;
[*]
查询系统资源
文件名:
sql> select * from dba_profiles;
资源
文件类似表,一旦创建就会保存在
数据库中。
sql> select username,profile,temporary_tablespace from dba_users;
sql> create profile common limit
Failed_login_attempts 5
idle_time 5;
sql> Alter user acc01 profile common;
三、
修改用户:
sql> Alter User
用户名
Identified 口令
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
1、
修改口令字:
sql>Alter user acc01 identified by "12345";
2、
修改用户缺省表空间:
sql> Alter user acc01 default tablespace users;
3、
修改用户临时表空间
sql> Alter user acc01 temporary tablespace temp_data;
4、强制
用户修改口令字:
sql> Alter user acc01 password expire;
5、将
用户加锁
sql> Alter user acc01 account lock; // 加锁
sql> Alter user acc01 account unlock; // 解锁
四、
删除用户
sql>drop user
用户名; //
用户没有建任何实体
sql> drop user
用户名 CASCADE; // 将
用户及其所建实体全部
删除
*1. 当前正连接的
用户不得
删除。
五、监视
用户:
1、
查询用户会话信息:
sql> select username,sid,serial#,machine from v$session;
2、
删除用户会话信息:
sql> Alter system kill session 'sid,serial#';
3、
查询用户sql语句:
sql> select user_name,
sql_text from v$open_cursor;
Oracle 角色管理
一、何为角色
角色。角色是一组权限的集合,将角色赋给一个
用户,这个
用户就拥有了这个角色中的所有权限。
二、系统预定义角色
预定义角色是在
数据库安装后,系统
自动创建的一些常用的角色。下介简单的介绍一下这些预定角色。角色所包含的权限可以用以下语句
查询:
sql>select * from role_sys_privs where role='角色名';
1.CONNECT,RESOURCE,DBA
这些预定义角色主要是为了向后兼容。其主要是用于
数据库管理。oracle建议
用户自己设计
数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。
2.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE
这些角色主要用于访问数据字典视图和包。
3.EXP_FULL_DATABASE, IMP_FULL_DATABASE
这两个角色用于数据导入导出工具的使用。
4.AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE
AQ:Advanced Query。这两个角色用于oracle高级
查询功能。
5. SNMPAGENT
用于oracle enterprise manager和Intelligent Agent
6.RECOVERY_CATALOG_OWNER
用于创建拥有恢复库的
用户。关于恢复库的信息,参考oracle文档《Oracle9i User-Managed Backup and Recovery Guide》
7.HS_ADMIN_ROLE
A DBA using Oracle's heterogeneous services feature needs this role to access appropriate tables in the data dictionary.
三、管理角色
1.建一个角色
sql>create role role1;
2.授权给角色
sql>grant create any table,create procedure to role1;
3.授予角色给
用户
sql>grant role1 to user1;
4.查看角色所包含的权限
sql>select * from role_sys_privs;
5.创建带有口令以角色(在生效带有口令的角色时必须提供口令)
sql>create role role1 identified by password1;
6.
修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1;
7.设置当前
用户要生效的角色
(注:角色的生效是一个什么概念呢?假设
用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于
用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;在
用户登录后,oracle将所有直接赋给
用户的权限和
用户默认角色中的权限赋给
用户。)
sql>set role role1;//使role1生效
sql>set role role,role2;//使role1,role2生效
sql>set role role1 identified by password1;//使用带有口令的role1生效
sql>set role all;//使用该
用户的所有角色生效
sql>set role none;//设置所有角色失效
sql>set role all except role1;//除role1外的该
用户的所有其它角色生效。
sql>select * from SESSION_ROLES;//查看当前
用户的生效的角色。
8.
修改指定
用户,设置其默认角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
详见oracle参考文档
9.
删除角色
sql>drop role role1;
角色
删除后,原来拥用该角色的
用户就不再拥有该角色了,相应的权限也就没有了。
说明:
1)无法使用WITH GRANT OPTION为角色授予对象权限
2)可以使用WITH ADMIN OPTION 为角色授予系统权限,取消时不是级联
========
Oracle用户管理与权限分配
用户与模式的关系 Oracle
数据库的安全保护流程可以分为3个步骤。首先,
用户向
数据库提供身份识别信息,即提供一个
数据库账号。接下来
用户还需要证明他们所给出的身份识别信息是有效的,这是通过输入密码来实现的,
用户输入的密码经过
数据库的核对确认
用户提供的密码是否正确。最后,假设密码是正确的,那么
数据库认为身份识别信息是可信赖的。此时,
数据库将会在基于身份识别信息的基础上确定
用户所拥有的权限,即
用户可以对
数据库执行什么操作。因此,为了确保
数据库的安全,首要的问题就是对
用户进行管理。 这里所有的
用户并不是
数据库的操作人员,而是在
数据库中定义的一个
名称,更准确地说它是账户,只是习惯上称其为
用户,它是Oracle
数据库的基本访问控制机制,当连接到Oracle
数据库时,操作人员必须提供正确的
用户名和密码。 连接到
数据库的
用户所具有的权限是不同的,Oracle提供了一些特权
用户,比如,SYSDBA或SYSOPER,这类
用户主要用于执行
数据库的维护操作,如启动
数据库、
关闭数据库、建立
数据库,以及执行备份和恢复等操作。SYSDBA和SYSOPER的区别在于:SYSDBA不仅具备SYSOPER的所有权限,而且还可以建立
数据库,执行不完全恢复。在Oracle 11g中,Oracle提供了默认的特权
用户SYS,当以特权
用户身份
登录数据库时,必须带有AS SYSDBA或AS SYSOPER选项。例如;
sql> connect system/1qaz2wsx as sysdba; 已连接。 与
用户密切关系的另一个概念是模式,模式也称作方案(Schema)。模式或方案实际上是
用户所拥有的
数据库对象的集合。在Oracle
数据库中,对象是以
用户来组织的,
用户与模式是一一对应的关系,并且两者
名称相同。 SCOTT
用户拥有的所有对象都属于SCOTT模式,而HR
用户拥有的所有对象都属于HR模式。 这里写
图片描述 兄弟连--Android培训! 【点击进入】 保障薪资4-6K签就业保障协议 0学费、0食宿、一个月免费学 查 看 当访问
数据库对象时,需要注意如下一些事项: 在同一个模式中不能存在同名对象,但是不同模式中的对象
名称则可以相同。
用户可以直接访问其它模式对象,但如果要访问其它模式对象,则必须具有该对象的相应访问权限。例如,
用户SCOTT可以直接查看其模式中的EMP表,但如果
用户HR要查看SCOTT模式中的EMP表时,则必须在EMP表上具有SELECT操作的权限。 当
用户要访问其它模式对象时,必须附加模式名作为前缀。 创建与管理
用户 Oracle为
用户账户提供了三种身份验证
方法。 密码验证 当一个使用密码验证机制的
用户视图连接到
数据库时,
数据库会核实
用户名是否是一个有效的
数据库账户,并且提供与该
用户在
数据库中存储的密码相匹配的密码。由于
用户信息和密码都存储在
数据库内部,所以使用密码验证
用户也称为
数据库验证
用户。 外部验证外部验证是指当
用户试图连接到
数据库时,
数据库会核实
用户名是否是一个有效的
数据库账户,并且确认该
用户已经完成了操作系统级别的身份验证。 注意:外部验证
用户并不在
数据库中存储一个验证密码。 全局验证全局验证是指
用户不在
数据库中存储验证密码,而是通过一种高级安全选项所提供的身份验证服务来进行的。 在上述的三种验证方式中,密码验证是最常使用的验证
方法。 创建
用户 要创建一个新的
用户,可采用CREATE USER命令。其语法格式如下: create user user_name identified by pass_word [or identified exeternally] [or identified globally as ‘CN=user’] [default tablespace tablespace_default] [temporary tablespace tablespace_temp] [quota [integer k[m]] [unlimited] ] on tablesapce_ specify1 [,quota [integer k[m]] [unlimited] ] on tablesapce_ specify2 [,…]…on tablespace_specifyn [profiles profile_name] [account lock or account unlock] 参数说明如下: user_name:
用户名,一般为字母数字型和“#”及“_”符号。 pass_word:
用户口令,一般为字母数字型和“#”及“_”符号。 identified exeternally:表示
用户名在操作系统下验证,这种情况下要求该
用户必须与操作系统中所定义的
用户名相同。 identified globally as ‘CN=user’:表示
用户名由Oracle安全域中心服务器验证,CN名字表使
用户的外部名。 [default tablespace tablespace_default]:表示该
用户在创建数据对象时使用的默认表空间 [temporary tablespace tablespace_temp]:表示该
用户所使用的临时表空间。 [quota [integer K[M]] [unlimited]] on tablespace_specify1:表示该
用户在指定表空间中允许占用的最大空间。 [profiles profile_name]:资源
文件的
名称。 [account lock or account unlock]:
用户是否被加锁,默认情况下是不加锁的。 (1)创建
用户,并指定默认表空间和临时表空间。 ----创建一个mr
用户,口令为mrsoft,并设置默认的表空间为users,临时表空间为temp的
用户 sql> create user mr identified by mrsoft 2 default tablespace users 3 temporary tablespace temp; (2)创建
用户,并配置其在指定表空间上的磁盘限额。有时,为了避免
用户在创建表和索引对象时占用过多的空间,可以配置
用户在表空间上的磁盘限额。在创建
用户时,可通过QUOTA xxxM ON tablespace_ specify子句配置指定表空间的最大可用限额,下面来看一个例子。 ----创建一个
用户east,口令为mrsoft,默认表空间为users,临时表空间为temp的
用户,并指定该
用户在tbsp_1表空间上最多可使用的大小为10m
sql> create user east identified by mrsoft 2 default tablespace users 3 temporary tablespace temp 4 quota 10m on tbsp_1; 说明:如果要
禁止用户使用某个表空间,则可以通过quota关键字设置该表空间的使用限额为0。 (3)创建
用户,并配置其在指定表空间上不受限制,如果要设置
用户在指定表空间上不受限制,可以使用QUOTA UNLIMITED ON tablespace_ specify子句。 ----创建一个
用户名为df,口令为mrsoft,临时表空间为temp,默认表空间为tbsp_1,并且该
用户使用tbsp_1表空间不受限制
sql> create user df identified by mrsoft 2 default tablespace tbsp_1 3 temporary tablespace temp 4 quota unlimited on tbsp_1; 在创建完
用户之后,需要注意以下几点: - 如果建立
用户时不指定DEFAULT TABLESPACE子句,Oracle会将SYSTEM表空间作为
用户默认表空间。 - 如果建立
用户时不能指定TEMPORARY TABLESPACE子句,Oracle会将
数据库默认临时表空间作为
用户的临时表空间。 - 初始建立的
用户没有任何权限,所以为了是
用户可以连接到
数据库,必须授权其CREATE SESSION权限 - 如果建立
用户时没有为表空间指定QUOTA子句,那么
用户在特定表空间上的配额为0,
用户将不能在相应的表空间上建立数据对象。 - 初始建立的
用户没有任何权限,不能执行任何
数据库操作。
修改用户 用户创建完后,
管理员可以对
用户进行
修改,
包括修改用户口令,改变
用户默认表空间、临时表空间、磁盘配额及资源限制等。
修改用户的语法与创建的
用户的语法基本相似,只是把创建
用户语法中的“CREATE”关键字替换成“ALTER”罢了。
修改用户的磁盘限额 如果DBA在创建
用户时,指定了
用户在某个表空间的磁盘限额,那么经过一段时间,该
用户使用该表空间已经达到了DBA所设置的磁盘限额时,Oracle系统就会
显示如图13-2所示的
错误提示。 这里写
图片描述 表示该
用户使用的资源已经超出了限额,DBA需要为该
用户适当
增加资源。 ----
修改用户east在表空间上的磁盘限额为20m(原始为10m,先
增加10m)。
sql> alter user east quota 20m on tbsp_1;
修改用户的口令
用户的口令在使用一段时间之后,根据系统安全的需要或在PROFILE
文件中(资源
配置文件)设置的规定,
用户必须要
修改口令。 ----
修改用户east的新口令为123456(原始为mrsoft)。
sql> alter user east identified by 123456; 解锁被锁住的
用户 Oracle默认安装完成后,为了安全起见,很多
用户处于LOCKED状态,DBA可以对LOCKED状态的
用户解除锁定。 ----使用alter user命令解除被锁定的账户SH。
sql> alter user SH account unlock;
删除用户 删除用户通过DROP USER语句完成的,
删除用户后,Oracle会从数据字典中
删除用户、方案及其所有对象方案,语法如下: drop user user_name[cascade] 参数说明如下: user_name:要
删除的
用户名。 cascade:级联
删除选项,如果
用户包含
数据库对象,则必须加 CASCADE选项,此时连同该
用户所拥有的对象一起
删除。 ----使用drop user语句
删除用户df,并连同该
用户所拥有的对象一起
删除。
sql> drop user df cascade;
用户权限管理 权限简介 根据系统管理方式的不同,在Oracle
数据库中将权限分为两大类:系统权限和对象向权限。 系统权限是在系统级对
数据库进行存取和使用的机制,比如,
用户是否能够连接到
数据库系统(SESSION权限),执行系统级的DDL语句(如CREAT、ALTER、和DROP)等。 对象权限是指某一个
用户对其他
用户的表、视图、序列、存储过程、
函数、包等的操作权限。不同类型的对象具有不同的对象权限,对于某些模式对象,比如簇、索引、触发器、
数据库链接等没有相应的实体权限,这些权限由系统权限进行管理。 授权操作 在Oracle 11g中含有200多种系统特权,并且所有这些系统特权均被列举在SYSTEM_PRIVILEGE_MAP数据目录视图中。授权操作使用GRANT命令,其语法格式如下: grant sys_privi | role to user | role | public [with admin option] 参数说明如下: sys_privi:表示Oracle系统权限,系统权限是一组约定的保留字。比如,若能够创建表,则为“CREATE TABLE”。 role:角色,关于角色会在后面小节中介绍。 user:具体的
用户名,或者是一些列的
用户名。 public:保留字,代表Oracle系统的所有
用户。 with admin option:表示被授权者可以再将权限授予另外的
用户。 —-为
用户east授予连接和开发系统权限,并尝试使用east连接
数据库。
sql> connect system/1qaz2wsx 已连接。
sql> grant connect,resource to east; 授权成功。
sql> connect east/123456; 已连接。 在上面的
代码中,使用east连接
数据库后,Oracle
显示“已连接”,这说明给east授予“connect”的权限是成功的。另外,如果想要east将这两个权限可以传递给其他的
用户,则需要在grant语句中使用“with admin option”关键字。 ----在创建
用户dongfang和xifang后,首先system将创建session和创建-table的权限授权给dongfang,然后dongfang再将这两个权限传递给xifang,最后通过xifang这个
用户创建一个数据表
sql> create user dongfang identified by mrsoft 2 default tablespace users 3 quota 10m on users;
用户已创建。
sql> create user xifang identified by mrsoft 2 default tablespace users 3 quota 10m on users;
用户已创建。
sql> grant create session,create table to dongfang with admin option; 授权成功。
sql> connect dongfang/mrsoft; 已连接。
sql> grant create session,create table to xifang; 授权成功。
sql> connect xifang/mrsoft; 已连接。
sql> create table tb_xifang 2 ( id number,3 name varchar2(20) 4 ); 表已创建。 回收系统权限 一般
用户若被授予过高的权限就可能给Oracle系统带来安全隐患。作为Oracle系统的
管理员,应该能够
查询当前Oracle系统各个
用户的权限,并且能够使用REVOKE命令撤销
用户的某些不要的系统权限,REVOKE命令的语法格式如下: revoke sys_privi | role from user | role | public 参数说明如下: sys_privi:系统权限或角色; role:角色; user:具体的
用户名; public:保留字,代表Oracle系统所有的
用户; —- 撤销east
用户的resource系统权限,
代码及运行结果如下。
sql> connect system/1qaz2wsx; 已连接。
sql> revoke resource from east; 撤销成功。 如果
数据库管理员用GRANT命令给
用户A授予系统权限是带有WITH ADMIN OPTION选项,则该
用户A有权将系统权限再次授予另外的
用户B。在这种情况下,如果
数据库管理员使用REVOKE命令撤销A
用户的系统权限,则
用户B的系统权限仍然有效。 首先撤销
用户dongfang的create table权限,然后尝试是否还可以通过
用户xifang创建数据表(注:是dongfang将create table权限传递给xifang),
代码及运行结果如下。
sql> revoke create table from dongfang; 撤销成功。
sql> connect xifang/mrsoft; 已连接。
sql> create table tb_xifang_2 2 ( id number,3 name varchar2(10) 4 ); 表已创建。 对象授权 与将系统权限授予
用户基本相同,授予对象权限给
用户或角色也使用GRANT命令,其语法格式如下: Grant obj_privi | all column on schema.object to user | role | public [with grant option] | [with hierarchy option] 参数说明如下: obj_privi:表示对象的权限,可以是ALTER、EXECUTE、SELECT、UPDATE和INSERT等; role:角色名; user:被授权的
用户名; with admin option:表示被授权者可再将系统权限授予其他的
用户; with hierarchy option:在对象的子对象(在视图上再建立视图)上授权给
用户。 ----给
用户xifang授予select、insert、delete和update表soctt.emp的权限。
sql> grant select,update on scott.emp to xifang; 授权成功。 回收对象权限 要从
用户或角色中撤销对象权限,仍然要使用REVOKE命令,其语法格式如下: revoke obj_privi | all on schema.object from user | role | public cascade constraints 参数说明如下: obj_privi:表示对象的权限。 public:保留字,代表Oracle系统的所有权限。 cascade ascade constraints:表示有关联关系的权限也被撤销。 ----从xifang
用户撤销scott.emp表的update和delete权限。
sql> connect system/1qaz2wsx; 已连接。
sql> revoke delete,update on scott.emp from xifang; 撤销成功。 说明:如果
数据库管理员GRANT命令给
用户A授予对象权限时带有WITH ADMIN OPTION选项,则该
用户A有权将权限再次授予另外的
用户B。在这种情况下,如果
数据库管理员用REVOKE命令撤销A
用户的对象权限时,
用户B的对象权限也被撤销。由此可见,在进行系统权限回收和进行对象权限回收时,
效果是不同的。
查询用户与权限
用户被授予的系统权限或对象权限都被记录在Oracle的数据字典里,了解某个
用户被授予哪些系统权限和对象权限是确保应用系统安全的重要工作。表是Oracle 11g用于存放
用户、系统权限、对象权限有关的数据字典。 这里写
图片描述 40-50女性如何留住月经! 【点击进入】 月经量少,月经不调,月经推迟,如何调理月经? 全国免费咨询热线:400-600-8218 查 看 角色管理 角色简介 角色是一个独立的
数据库实体,它
包括一组权限。也就是说,角色是
包括一个或者多个权限的集合,它并不被哪个
用户所拥有。角色可以被授予任何
用户,也可以从
用户中将角色收回。 使用角色可以简化权限的管理,可以仅用一条语句就能从
用户那里授予或回收权限,而不必对
用户一一授权。使用角色还可以实现权限的动态管理,比如,随着应用的变化可以
增加或者减少角色的权限,这样通过改变角色的权限,就实现了改变多个
用户的权限。 角色、
用户及权限是一组关系密切的对象,既然角色是一组权限的集合,那么,它只有被授予某个
用户才能有意义,可以用如图所示的图形来帮助我们理解角色、
用户及权限的关系。 这里写
图片描述 各行业真账实操,15天免费试学 【点击进入】 20多个行业真账实操,105位老会计线上辅导,做账报税30天包学精通!首选会计学堂! 查 看 vcfJq8qxssXE3Mq508NPUkFDTEXPtc2z18rUtKGjIDxicj4KICAgIMHtzeKjrNTatLS9qL3HyavKsaOsv8nS1M6qvcfJq8no1sPTptPDsLLIq9DUoaO9x8mrtcSwssir0NTNqLn9zqq9x8mryejWw7/awe69+NDQsaO7pKOssdjQ68zhuanV/ci3tcS/2sHussXUytDt0N64xLvyyejWw73HyauhozwvcD4KCgoKPGgyIGlkPQ=="预定义角色">预定义角色 所谓系统预定义角色是指在
数据库安装完成后由系统
自动创建的一些常用角色,这些角色已经由系统授予了相应的系统权限,可以由
数据库管理员直接使用。一旦将这些角色授予
用户以后,
用户便具有了角色中所包含的系统权限。下面列出的这几个系统预定义角色是最常被用到的。 CONNECT; RESOURCE; DBA; EXP_FULL_DATABASE; IMP_FULL_DATABASE。 角色CONNECT,RESOURCE及DBA主要用于
数据库管理,这3个角色之间相互没有包含关系(有些系统权限可能有重叠)。
数据库管理员需要分别授予CONNECT,RESOURCE和DBA角色。对于一般的
数据库开发人员,则需要授予CONNECT,RESOURCE角色。 角色IMP_FULL_DATABASE和EXP_FULL_DATABASE分别用于操作
数据库的导入或导出工具,如,操作
数据库工具EXPDP,IMPDP,或者系统的EXP,IMP。在使用这些工具进行整个
数据库的到导出与导入工作时,需要具备这两个角色。 这里写
图片描述 别去算命了,生肖决定你的财富! 【点击进入】 你的生肖决定了你这辈子是穷苦命, 还是富贵命!生肖本命佛改变你的运势! 查 看 不同版本的Oracle预定义的角色不一样多,但都可以从DBA_ROLES数据字典中
查询到,下面通过该数据字典来看一下Oracle 11g的预定义系统角色有哪些。 ----使用select语句
查询dba_roles数据字典中的角色信息。
sql> set pagesize 50;
sql> select * from dba_roles; 这里写
图片描述 创建角色与授权 如果系统预定义的角色不符合
用户需要,那么,
数据库管理员可以创建更多的角色,创建
用户自定义角色可以使用CREATE ROLE语句来实现,其语法格式如下: create role role_name [ not identified | identified by [password] | [exeternally] | [globally]] 参数说明如下: role_name:角色名; identified by password:角色口令; identified by exeternally:表示角色名在操作系统下验证; identified globally:表示
用户是Oracle安全域中心服务器来验证,此角色由全局
用户来使用。 ----创建一个名为designer的角色,该角色的口令为123456。
sql> connect system/1qaz2wsx; 已连接。
sql> create role designer identified by 123456; 一旦角色创建完成,就可以对角色进行授权,给角色授权也是使用GRANT…TO语句来实现的。如果系统
管理员具有GRANT_ANY_PRVILEGE权限,就可以对某个角色进行授权。比如,授权CREATE SESSION,CREATE SYNONYM,CREATE VIEW等。 ----给designer角色授予create view和create table权限。
sql> grant create view,create table to designer; 在角色获得了权限之后,就可以把这个有使用价值的角色授予给某个
用户了。把角色授予给某个
用户仍然使用GRANT…TO语句来实现。 ----把designer角色授权给
用户dongfang,
代码及运行结果如下。
sql> grant designer to dongfang; 管理角色 在学习过管理
用户(
包括创建、
修改、
删除等操作)之后,再学习如何管理角色就相对简单多了,因为这二者之间有很多相似之处,这里仅通过一些简单实例来对角色的管理进行说明。 查看角色所包含的权限 查看角色权限通常使用ROLE_SYS_PRIVS数据字典,来看下面的例子。 ----
查询角色designer被属于的权限有哪些。
sql> select * from role_sys_privs where role = 'DESIGNER'; 这里写
图片描述
修改角色密码
修改角色密码
包括取消角色密码和
修改角色密码两种情况,可以使用ALTER ROLE语句来实现。 ----首先取消designer角色的密码,然后再重新给该角色设置一个密码。
sql> alter role designer not identified; 角色已丢弃。
sql> alter role designer identified by mrsoft; 角色已丢弃。 设置当前
用户要生效的角色 角色的生效是一个什么概念呢?假设
用户a有b1,b2,b3三个角色,那么,如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,只有角色生效了,角色内的权限才作用于
用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;
用户登录后,Oracle将所有直接赋值给
用户的权限和
用户默认角色中的权限赋给
用户。设置角色生效可使用SET ROLE语句。 创建一个无需密码验证的角色queryer,然后设置该角色生效,接下来再设置带有密码的角色designer也生效。
sql> create role queryer; 角色已创建。
sql> set role queryer; 角色集
sql> set role designer identified by mrsoft; 角色集 说明:如果要设置带有密码的角色生效,则必须在SET ROLE语句后面使用“IDENTIFIED BY”关键字指定角色的密码。
删除角色
删除角色很简单,使用DROP ROLE语句即可实现,来看下面的例子。 ----使用drop role语句
删除角色queryer。
sql> drop role queryer; 角色已
删除。
删除角色后,原来拥有该角色的
用户将不再拥有该角色,相应的权限也将失去。 角色与权限
查询 创建角色和
用户以后,给角色和
用户授予的权限被记录在Oracle数据字典里,作为Oracle
数据库管理员,需要了解角色被授予了哪些权限及
用户被授予了哪些权限和角色,从而对这个
数据库的所有
用户进行全面的管理,如表所示是Oracle 11g用于存放
用户、角色及权限的相关数据字典。 这里写
图片描述 ----
查询HR
用户被授予的系统角色。
sql> select granted_role,default_role from dba_role_privs 2 where grantee = 'HR'; 这里写
图片描述 在某个模式下,如果
用户要确定当前会话中的所有有效角色,可以通过SESSION_ROLE数据字典来
查询。 ----在scott模式下,
查询当前
用户的所有有效角色。
sql> connect scott/1qaz2wsx; 已连接。
sql> select * from session_roles; 这里写
图片描述 资源配置PROFILE PROFILE简介 PROFILE作为
用户配置文件,它是密码限制、资源限制的命名集合。PROFILE
文件作为Oracle安全策略的重要组成部分,利用它可以对
数据库用户进行基本的资源限制,并且可以对
用户的密码进行管理。 在安装
数据库时,Oracle会
自动建立名为DEFAULT的默认
配置文件。如果没有为新创建的
用户指定DEFAULT
文件,Oracle将
自动为它指定DEFAULT
配置文件。初始的DEFAULT
文件没有进行任何密码和资源限制。使用PROFILE
文件时需要注意如下事项。 建立
用户时,如果不指定PROFILE选项,Oracle会
自动将DEFAULT分配给相应的
数据库用户。 建立PROFILE
文件时,如果只设置了部分密码和资源限制选项,其他选项会
自动使用默认值,即使DEFAULT
文件中有相应选项的值。 使用PROFILE管理密码时,密码管理选项总是处于被激活状态,但是如果使用PROFILE管理资源,必须要激活资源限制。 一个
用户只能分配一个PROFILE
文件。如果要同时管理
用户的密码和资源,那么在建立PROFILE时应该同时指定密码和资源选项。 使用PROFILE管理密码 当操作人员要连接到Oracle
数据库时,需要提供
用户名和密码。对于黑客或某些人而言,他们可能通过猜测或反复实验来破解密码。为了加强密码的安全性,可以使用PROFILE
文件管理密码。PROFILE
文件提供了一些密码管理选项,他们提供了强大的密码管理
功能,从而确保密码的安全。为 了实现密码限制,必须首先建立PROFILE
文件。建立PROFILE
文件是使用CREATE PROFILE语句完成的, 一般情况下,该语句是由DBA执行的,如果要以其他
用户身份建立PROFILE
文件,则要求该
用户必须具有CREATE PROFILE系统权限。 使用PROFILE
文件可以实现如下四种密码管理:账户锁定、密码的过期时间、密码历史和密码的复杂度。 1.账户锁定 账户的锁定策略是指
用户在连续输入多少次
错误密码后,Oracle会
自动锁定
用户的账户,并且可以规定账户的锁定时间。Oracle为锁定账户提供了以下两个参数。
Failed_LOGIN_ATEMPTS 该参数限制
用户在
登录到Oracle
数据库时允许失败的
次数。一旦某个
用户尝试登陆
数据库的
次数达到该值,则系统将该
用户账户锁定。 PASSWORD_LOCK_TIME 该参数用于指定账户被锁定的天数。 ---- 创建的profile
文件,要求设置连续失败
次数为5,超过该
次数后,账户将被锁定7天,然后使用alter user语句将profile
文件(即lock_account)分配给
用户dongfang。
sql> create profile lock_account limit 2
Failed_login_attempts 5 3 password_lock_time 7;
配置文件已创建
sql> alter user dongfang profile lock_account;
用户已更改。 在建立lock_account
文件并将该
文件分配给
用户dongfang后,如果以
用户dongfang身份连接到
数据库,并且连续连接失败5次后,Oracle将
自动锁定该
用户账户。此时,即使为
用户dongfang提供了正确的密码,也无法连接到
数据库。 在建立lock_account
文件时,由于指定password_lock_time的参数为7,所以账户锁定天数达到7天后,Oracle会
自动解锁账户。 说明:如果建立PROFILE
文件时没有提供该参数,将
自动使用默认值UNLIMITED,这种情况下,需要DBA手动解锁
用户账户。 2.密码的过期时间 密码的过期时间是指强制
用户定期
修改自己的密码,当密码过期后,Oracle会随时提醒
用户修改密码。密码宽限期是指密码到期之后的宽限使用时间。默认情况下,建立
用户并为其提供密码之后,密码会一直生效。为了防止其他人员破解
用户账户的密码,可以强制普通
用户定期改变密码。为了将强制
用户定期
修改密码,Oracle提供了如下参数。 PASSWORD_LIFE_TIME 该参数用于设置
用户密码的有效时间,单位为天数。超过这一段时间,
用户必须重新设置口令。 PASSWORD_GRACE_TIME 该参数用于设置口令失效的“宽限时间”。如果口令到达PASSWORD_LIFE_TIME设置的失效时间,设置宽限时间后,
用户仍然可以继续使用一段时间。 ----下面创建一个profile
文件(即password_lift_time),并设置
用户的密码有效期为30天,密码宽限期为3天,然后使用alter user语句将profile
文件(即password_lift_time)分配给
用户dongfang。
sql> create profile password_lift_time limit 2 password_life_time 30 3 password_grace_time 3;
配置文件已创建
sql> alter user dongfang profile password_lift_time;
用户已更改。 这里写
图片描述 若果
用户在30天内没有
修改密码,那么在第31天、第32天、第33天连接时,仍然会
显示类似的警告信息。如果在33天内仍然没有
修改密码,那么当第34天连接时,Oracle会强制
用户修改密码,否则不允许连接到
数据库。 3.密码历史 密码历史是用于控制账户密码的可重复使用
次数或可重用时间。使用密码历史参数后,Oracle会将密码
修改信息存放到数据字典中。这样,当
修改密码时,Oracle会对新、旧密码进行比较,以确保
用户不会重用过去已经用过的密码。关于密码历史有如下两个参数。 PASSWORD_REUSE_TIME 该参数指定密码可重用的时间,单位为天。 PASSWORD_REUSE_MAX 该参数设置口令在能够被重新使用之前,必须改变的
次数。 说明:在使用密码历史选项时,只能使用其中的一个参数,并将另一个参数设置为UNLIMITED。 4.密码复杂度 在PROFILE
文件中,可以通过指定的
函数来强制
用户的密码必须具有一定的复杂度。例如,强制
用户的密码不能与
用户名相同。使用校验
函数验证
用户密码的复杂度时,只需要将这个
函数的
名称指定给PROFILE
文件中的PASSWORD_VERIFY_FUNCTION参数,Oracle就会
自动使用该
函数对
用户的密码和格式进行验证。 在Oracle 11g中,验证密码复杂度
功能有新的改进。在$ORACLE_HOME/rdbms/admin目录下创建了一个新的密码验证
文件UTLPWDMG.
sql,其中不仅提供了先前的验证
函数VERIFY_FUNCTION,还提供了一个新建的VERIFY_FUNCTION_11G
函数。 使用PROFILE管理资源 在大而复杂的多
用户数据库环境中,因为
用户众多,所以系统资源可能会成为影响
性能的主要瓶颈,为了有效地利用系统资源,应该根据
用户所承担任务的不同为其分配合理资源。PROFILE不仅可用于管理
用户密码,还可以用于管理
用户资源。需要注意,如果是使用PROFILE管理资源,必须将RESOURCE_LIMIT参数设置为TRUE,以激活资源限制。由于该参数是动态参数,所以可以使用ALTER SYSTEM语句进行
修改。 ----首先使用show命令查看RESOURCE_LIMIT参数的值,然后使用alter system命令
修改该参数的值为true,从而激活资源限制。
sql> show parameter resource_limit; NAME TYPE VALUE -------------------- ----------- ------ resource_limit boolean FALSE
sql> alter system set resource_limit=true; 系统已更改。 利用PROFILE
配置文件,可以对以下系统资源进行限制:
cpu时间:为了防止无休止地使用
cpu时间,限制
用户每次
调用是使用的
cpu时间以及在一次会话期间所使用的
cpu时间。 逻辑读:为了防止过多使用系统的I/O操作,限制每次
调用即会话时读取的逻辑数据块数目。
用户的并发会话数。 会话空闲的限制:当一个会话空闲的时间达到了限制值时,当前事务被回滚,会话被终止并且所占用的资源被释放。 会话可持续的时间:如果一个会话的总计连接时间达到了该限制值,当前事务被回滚,会话被终止并释放所占用的资源。 会话所使用的SGA空间限制。 当一个会话或
sql语句占用的资源超过PROFILE
文件中的限制时,Oracle将终止并回退当前的事务,然后向
用户返回
错误的信息,如果受到的限制是会话级的,在提交或回退事务后,
用户会话将被终止;而受到
调用级限制时,
用户会话还能够继续进行,只是当前执行的
sql语句将被终止。下面是PROFILE
文件中对各种资源限制的参数。 SESSION_PER_USER:
用户可以同时连接的会话
数量。如果
用户的连接数达到该限制,则试图
登录时将产生一条
错误信息。
cpu_PER_SESSION:限制
用户再一次
数据库会话期间可以使用的
cpu时间,单位为百分之一秒。当达到该时间值后,系统就会终止该会话。如果
用户还需要执行操作,则必须重建立连接。 CUP_PER_CALL:该参数
用户限制每条
sql语句所能使用的
cpu时间,参数值是一个整数,单位百分之一秒。 LOGICAL_READS_PER_SESSION:限制每个会话所能读取的数据块
数量,
包括从内存中读取的数据块和从磁盘中读取的数据块。 CONNECT_TIME:限制每个
用户连接到
数据库的最长时间,单位分钟,当连接时间超出该设置时,该
链接终止。 IDLE_TIME:该参数限制每个
用户会话连接到
数据库的最长时间。超过该空闲时间的会话,系统会终止该会话。 维护PROFILE
文件 在Oracle中,PROFILE
文件也是一种数据资源。DBA也可以使用相应的语句对其进行管理,
包括修改配置文件、
删除配置文件按、激活或禁用
配置文件。 1.
修改PROFILE
文件 在创建PROFILE
文件之后,还可以使用ALTER PROFILE语句
修改其中的资源参数和密码参数,来看下面的例子。 ----对password_lift_time
文件(即PROFILE
文件)的资源限制参数进行
修改。
sql> alter profile password_lift_time limit 2
cpu_per_session 20000 3 sessions_per_user 10 4
cpu_per_call 500 5 password_life_time 180 6
Failed_login_attempts 10;
配置文件已更改 说明:对
配置文件所做的
修改只有在
用户开始新的会话时才会生效 2.
删除PROFILE
文件 使用DROP PROFILE语句可以
删除PROFILE
文件。如果要
删除的
配置文件已经被指定给了
用户,则必须在DROP PROFILE语句中使用CASCADE关键字,来看下面的例子。 ----
删除被分配给dongfang这个
用户的password_lift_time
配置文件。
sql> drop profile password_lift_time cascade;
配置文件已
删除。 说明:如果为
用户指定的
配置文件被
删除,则Oracle将
自动为
用户重新指定DEFAULT
配置文件 显示PROFILE信息 在PROFILE
文件被创建后,其信息被存储在数据字典中。通过
查询这些数据字典,可以了解PROFILE
文件的信息。 1.
显示用户的资源配置信息 建立或
修改用户时,可以为
用户分配PROFILE
文件,如果没有为
用户分配PROFILE
文件,Oracle会
自动将DEFAULT分配给
用户。通过
查询数据字典视图DBA_USERS,可以
显示用户使用的PROFILE
文件,下面来看一个例子。 ----
显示用户的DONGFANG所使用的PROFILE
文件。
sql> select profile from dba_users where username='DONGFANG'; PROFILE ------------------------ LOCK_ACCOUNT 2.
显示指定PROFILE
文件的资源配置信息 建立或
修改PROFILE
文件时,Oracle将会PROFILE参数存放在数据字典中。通过
查询DBA_PROFILES,可以
显示PROFILE的密码限制、资源限制信息,下面来看一个例子。 ----
显示RESOURCE_LIMIT
文件的密码和资源限制信息。
sql> column limit for a20
sql> select resource_name,resource_type,limit 2 from dba_profiles 3 where profile = 'LOCK_ACCOUNT'; ========
原文链接:https://www.f2er.com/oracle/212249.html