oracle安全管理

验证机制(AuthenticationMechanism)

可通过以下方式之一对访问数据库的用户进行验证

数据字典、操作系统、网络

表空间限额(TablespaceQuotas)

控制分配给用户的物理存储空间的大小

缺省表空间(DefaultTablespace)

如果用户在创建段时不明确指定表空间,那么缺省表空间会定义用户所创建段的存储位置

临时表空间(TemporaryTablespace)

如果用户执行的操作要求将排序数据写入磁盘,那么临时表空间会定义Oracle 服务器分配哪些区

帐户锁定(Account Locking)

可锁定帐户以防止用户登录数据库

资源限制(ResourceLimits)

可以对某些资源的使用加以限制

如:CPU 时间、I/O 以及用户打开的会话数目

直接权限(DirectPrivileges)

权限用于控制用户能在数据库中执行的操作

角色权限(Role Privileges)

可通过使用角色间接授予用户权限

 

1.      用户管理:在系统中有5个比较特殊的用户sys,sytem,sysman,dbsnmp,public,其中sys是数据库中具有最高谦虚的数据管理员

Oracle数据库预定义的几个管理用户账户

a)        SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典;

b)        SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。

c)        SYSMAN:是OEM的管理员用户,可以对OEM进行配置和管理。

d)        PUBLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。要为数据库中每个用户都授予某个权限,只需把权限授予PUBLIC就可以了。

创建数据库用户语法:

CREATE USER user_name IDENTIFIED

[BYpassword|EXTERNALLY|GLOBALLY AS 'external_name']

[DEFAULTTABLESPACE tablespace_name]

[TEMPORARYTABLESPACE temp_tablesapce_name]

[QUOTA n K|M|UNLIMITEDON tablespace_name]

[PROFILEprofile_name]

[PASSWORDEXPIRE]

[ACCOUNTLOCK|UNLOCK]

参数说明

IDENTIFIED:用于指明用户身份认证方式

DEFAULT TABLESPACE:用于设置用户的默认表空间

TEMPORARY TABLESPACE:用于设置用户的临时表空间

PROFILE:用于为用户指定配置文件,默认值为DEFAULT,采用系统默认的配置文件

ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁定

ACCOUNT UNLOCK:用于设置用户初始状态为不锁定或解除用户的锁定状态

修改用户的语法:

ALTER USER user_name IDENTIFIED

[BYpassword|EXTERNALLY|GLOBALLY AS 'external_name']

[DEFAULTTABLESPACE tablespace_name]

[TEMPORARYTABLESPACE temp_tablesapce_name]

[QUOTA nK|M|UNLIMITED ON tablespace_name]

[PROFILEprofile_name]

[DEFAULT ROLErole_list|ALL [EXCEPT role_list]

|NONE]

[PASSWORDEXPIRE]

[ACCOUNTLOCK|UNLOCK]

例子:

举例:

将用户user3的口令修改为newpswd,同时将该用户解锁

ALTER  USER  user3  IDENTIFIED BY newpswd ACCOUNT UNLOCK

 

用户的锁定与解锁

ALTER  USER user3 ACCOUNT LOCK   ALTERUSER user3 ACCOUNT UNLOCK;

 

更改用户的表空间限额

ALTER USER user3 QUOTA 0 ON USERS

删除用户:DROP USERuser_name [CASCADE]

如果用户拥有数据库对象,则必须在DROP USER语句中使用CASCADE选项

 

2.      权限管理:系统权限和对象权限

a)        系统权限:系统权限是指在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限

例如,CREATESESSION权限、CREATE ANY TABLE权限

b)        对象权限:对象权限是指对某个特定的数据库对象执行某种操作的权限

例如,对特定表的插入、删除、修改、查询的权限

c)        授权方法:直接授权和间接授权

                                                    i.             直接授权:利用GRANT命令直接为用户授权

                                                  ii.             间接授权:先将权限授予角色,然后再将角色授予用户

d)        系统权限可分为以下几类

允许执行系统范围操作的权限

如CREATE SESSION,CREATE TABLESPACE

允许管理用户自己方案中的对象的权限

如CREATE TABLE

允许管理任何方案中的对象的权限

如CREATE ANY TABLE

e)       系统权限有202种(11g)

SELECT DISTINCT privilege from DBA_SYS_PRIVS

f)       常用的系统权限如下:

创建会话(CREATE SESSION)

更改数据库(ALTER DATABASE)

更改系统(ALTER SYSTEM)

管理表空间(CREATE TABLESPACE、ALTER TABLESPACE、DROP TABLESPACE)

创建表(CREATE TABLE)

授予任何对象权限(GRANT ANY OBJECT PRIVILEGE)

创建任何表(CREATE ANY TABLE)

管理任何表(SELECT / INSERT / UPDATE / DELETE ANY TABLE)

g)       系统授权的语法:GRANTsys_priv_list TO user_list|role_list|PUBLIC[WITH ADMIN OPTION]

sys_priv_list:表示系统权限列表,以逗号分隔;

user_list:表示用户列表,以逗号分隔;

role_list:表示角色列表,以逗号分隔;

PUBLIC:表示对系统中所有用户授权;

WITH ADMIN OPTION:表示允许系统权限接收者再把此权限授予其他用户。

h)      例子:

a)        为Public组用户授予create session 系统权限

grant create session to public

b)        为用户user1授予create session,create table,create view 系统权限

grant create session,create table,create view to user1;

i)        系统权限回收:REVOKE sys_priv_list from user_list|role_list|PUBLIC

j)       对象权限管理:Oracle数据库中共有9种类型的对象权限,不同类型的模式对象有不同的对象权限,而有的对象并没有对象权限,只能通过系统权限进行控制,如簇、索引、触发器、数据库链接等

k)       对象权限有:select,update,delete,insert,references,execute,read,alter,index,all

l)        对象权限授予:GRANT obj_priv_list|all ON [schema.]object to user_list|role_list[with grant option]

obj_priv_list:表示对象权限列表,以逗号分隔

[schema.]object:表示指定的模式对象,默认为当前模式中的对象

user_list:表示用户列表,以逗号分隔

role_list:表示角色列表,以逗号分隔

WITH GRANT OPTION:表示允许对象权限接收者把此对象权限授予其他用户

m)     例子:将scott模式下的emp表的select,uptate,insert权限授予user1用户

grant select,insert,update on scott.emp to user1;

n)      对象权限的回收:revokeobj_priv_list | all on [schema.]object from user_list| role_list;

o)      小结:withadmiin option(系统权限)和with grant option(对象权限)

对于系统权限:当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限仍然存在

对于对象权限:当甲用户授权给乙用户,且激活该选项,则被授权的乙用户具有管理该权限的能力:或者能把得到的权限再授给其他用户丙,或者能回收授出去的权限。当甲用户收回乙用户的权限后,乙用户曾经授给丙用户的权限也被回收。

p)      查询权限的信息

包含授予的系统权限信息

DBA_SYS_PRIVS、USER_SYS_PRIVS

包含对象的授权信息

DBA_TAB_PRIVS、ALL_TAB_PRIVS、USER_TAB_PRIVS

包含所有字段已授予的对象权限信息

DBA_COL_PRIVS、ALL_COL_PRIVS、USER_COL_PRIVS

用户当前可用的权限

SESSION_PRIVS

3.      角色管理:角色就是一系列相关权限的集合

a)        特点:

可以通过授予和撤消系统权限所用的命令来授予和撤消用户的角色

可以将角色授予任何用户或角色。但是,不能将角色授予它本身,也不能循环授予

角色可以由系统权限和对象权限组成

对于被授予某种角色的每个用户来说,该角色可以启用,也可以禁用

角色可要求通过口令启用

现有的用户名和角色名中,每个角色名必须唯一

角色不属于任何人,也不存在于任何方案中

在数据字典中存储了有关角色的说明

b)        数据字典:DBA_ROLES、ROLE_SYS_PRIVS,可以查询系统预存的角色

select role from dba_roles; (查询看有哪些角色)

select * from role_sys_privs where role = 'RESOURCE';

(查询看某个角色具有哪些系统权限)

c)        常用的角色:connect,resource,dba,public

d)        创建角色:create role role_name [not identified] [identified by password]

role_name:用于指定自定义角色名称,该名称不能与任何用户名或其他角色相同

NOT IDENTIFIED:用于指定该角色由数据库授权,使该角色生效时不需要口令

IDENTIFIED BY password:用于设置角色生效时的认证口令

e)        角色权限的授予与回收:

                        i.             grant role [,role] touser|role|public with admin option

                      ii.             revoke role [,role]user|role|public

给角色授予适当的系统权限、对象权限或已有角色

在数据库运行过程中,可以为角色增加权限,也可以回收其权限

给角色授权时应该注意,一个角色可以被授予另一个角色,但不能授予其本身,不能产生循环授权

f)         修改角色:alter role role_name [not identified ][identified by password]

g)        设置用户的缺省角色:alter user user_name default role [role_name]| [all [exceptrole_name]] | [none]

h)        角色的生效和失效:set role [role_name [identified by password]]| [all [excepterole_name]] | [none]

role_name:表示进行生效或失效设置的角色名称

IDENTIFIED BY password:用于设置角色生效或失效时的认证口令

ALL:表示使当前用户所有角色生效

EXCEPT role_name:表示除了特定角色外,其余所有角色生效

NONE:表示使当前用户所有角色失效

i)          删除角色:drop role role_name

j)          查询角色信息:

数据库中所有角色及其描述

DBA_ROLES

授予的角色信息

DBA_ROLE_PRIVS、USER_ROLE_PRIVS、ROLE_ROLE_PRIVS

为角色授予的系统权限信息

ROLE_SYS_PRIVS

为角色授予的对象权限信息

ROLE_TAB_PRIVS

当前会话所具有的权限信息、角色信息

SESSION_PRIVS、SESSION_ROLES

4.      配置文件管理:也称为概要文件,具有双重功能:实施口令策略,限制回话可以占用的资源,在oracle数据库创建的同时,系统会创建一个名为default的默认配置文件,系统默认将default配置文件作为用户的配置文件

a)        管理口令:

                                                    i.             FAILED_LOGIN_ATTEMPTS:限制用户在登录Oracle数据库时允许失败的次数

                                                  ii.             PASSWORD_LOCK_TIME:设定当用户登录失败后,用户账户被锁定的天数

                                                 iii.             PASSWORD_LIFE_TIME:设置用户口令的有效天数

                                                 iv.             PASSWORD_GRACE_TIME:用于设定提示口令过期的天数

                                                  v.             PASSWORD_REUSE_TIME:指定一个用户口令被修改后,必须经过多少天后才可以重新使用该口令

                                                 vi.             PASSWORD_REUSE_MAX:指定一个口令被重新使用前,必须经过多少次修改

                                               vii.             PASSWORD_VERIFY_FUNCTION:设置口令复杂性校验函数

b)        资源限制:

                                                    i.             SESSIONS_PER_USER:限制一个用户打开数据库会话的最大数量。

                                                  ii.             CPU_PER_SESSION:限制用户在一次会话期间可以占用的CPU 时间总量,单位为百分之一秒

                                                 iii.             CPU_PER_CALL:限制每个调用可以占用的CPU时间总量,单位为百分之一秒

                                                 iv.             LOGICAL_READS_PER_SESSION:允许一个会话读取数据块的最大数量

                                                  v.             LOGICAL_READS_PER_CALL:允许一个调用读取的数据块的最大数量

                                                 vi.             PRIVATE_SGA:在共享服务器操作模式中,该参数限制在SGA中一个会话可分配私有SQL区的最大值CONNECT_TIME:限制每个会话可持续的最大时间值,单位为分钟

                                               vii.             IDLE_TIME:限制每个会话处于连续空闲状态的最大时间值,单位为分钟

                                              viii.             COMPOSITE_LIMIT:称为“综合资源限制”,是一个用户会话可以消耗的资源总限额。该参数由下面几个参数综合决定:

CPU_PER_SESSION

LOGICAL_READS_PER_SESSION

PRIVATE_SGA

CONNECT_TIME

c)        创建配置文件:create profile profile_name limitresource_parameters|password_parameters;

                                                    i.             profile_name:用于指定要创建的配置文件名称;

                                                  ii.             resource_parameter:用于设置资源限制参数,形式为:

                                                 iii.             resource_parameter_nameinteger|UNLIMITED|DEFALUT

                                                 iv.             password_parameters:用于设置口令参数,形式为:

                                                  v.             password_parameter_nameinteger|UNLIMITED|DEFALUT

d)        例子:创建一个名为pwd_profile的配置文件,如果用户连续4次登录失败,则锁定该用户,10天后该用户自动解锁

create profile pwd_profile limit failed_login_attempts 4password_lock_time 10

e)        例子:创建一个名为res_profile的配置文件,要求每个用户最多可以创建4个并发会话;每个会话持续时间最长为60分钟;如果会话在连续20分钟内空闲,则结束会话;每个会话的私有SQL区为100KB;每个SQL语句占用CPU时间总量不超过10秒。

create profile res_profile limit sessions_per_user 4connect_time 60 idle_time 20 private_sga 100K cpu_per_call 100

f)         为用户指定配置文件

                        i.             create user user1 identified byuser1 profile res_profile

                      ii.             alter user user2 profilepwd_profile

g)        修改配置文件

                        i.             语法:alter profile profile_name limitresource_parameters|password_parameters

                      ii.             例子:修改pwd_profile的配置文件,将用户口令有效期设置为10天

alter profile pwd_profile limit password_life_time 10;

h)        删除配置文件

                        i.             语法:drop profile profile_name [cascade]

                      ii.             例子:drop profile pwd_profile cascade;

i)          查询配置文件

                                                    i.             USER_PASSWORD_LIMITS:

                                                  ii.             包含通过配置文件为用户设置的口令策略信息

                                                 iii.             USER_RESOURCE_LIMITS:

                                                 iv.             包含通过配置文件为用户设置的资源限制参数

                                                  v.             DBA_PROFILES:

                                                 vi.             包含所有配置文件的基本信息

                                               vii.             DBA_USERS 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值