九、安全(一)

9.1安全体系

Oracle的安全体系包括:

l         物理层安全性:数据库所在节点必须在物理上得到可靠的保护。

l         用户层安全性:那些用户可以使用数据库,使用数据库的那些对象,具有什么样的权限。

l         操作系统层安全性:操作系统安全。

l         网络层安全性:通过分发wallet、数字证书、SSL安全套接字和数据密钥来保证网络层安全。

 

当然我不可能在这里将整个oracle的安全体系全部阐述完。看看比较重要一些东西。

 9.2 概要文件

  概要文件是oracle安全的重要组成部分,利用概要文件可以对数据库用户进行基本的资源限制,并且可以对用户的口令进行管理。


or89.gif

上图列出了概要文件的基本语法。

当然我们也通过控制台来完成上述配置。


or90.gif

上图显示了通过OEM控制台来完成同样的SQL语句,还是图形的比较方便。

 

9.3用户

1.创建用户的语法:

CREATE USER user

    IDENTIFIED {BY password | EXTERNALLY}

    [DEFAULT TABLESPACE tablespace]

    [TEMPORARY TABLESPACE tablespace]

    [QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ...

[PROFILE profile]

例如:


or91.gif

当然这个时候我们创建的coffee_liu这个用户还不能连接到数据库,因为没有给他授予权限。

下面我们给coffee_liu授予连接到数据库的权限。

Grant create session to coffee_liu;

或者直接将connect角色付给coffee_liu

Grant connect to coffee_liu;

2.修改用户

语法:

ALTER USER user

    [IDENTIFIED {BY password | EXTERNALLY}]

    [DEFAULT TABLESPACE tablespace]

    [TEMPORARY TABLESPACE tablespace]

    [QUOTA {integer [K|M] | UNLIMITED} ON tablespace] ...

    [PROFILE profile]

    [DEFAULT ROLE { role [, role] ...

                  | ALL [EXCEPT role [, role] ...]

                  | NONE}]

例如:

Alter user coffee_liu

   Identified by coffee_liu ;//修改自己的密码

  

 作为管理员来说,我们还可以锁定帐号、使帐号过期和删除帐号

  Alter user coffee_liu account lock;//锁定

  Alter user coffee_liu account unlock;//解锁

  Alter user coffee_liu password expire;//使密码过期

  Drop user coffee_liu cascade;//删除帐号

9.4权限/角色

  Oracle通过系统权限和用户权限来限制用户可以干什么,不可以干什么。

  角色是命名的权限合集,其可以用来简化权限管理工作。实际上我们可以将权限直接赋予用户,也可以将很多的特定的权限打包分配给角色,然后将角色再分配给用户。这个原理有点像,我们windows地下的:用户-用户组-权限的关系,角色相当于用户组。

  对于权限来说又可分为:

l         系统权限:在数据库级别执行某种操作,或者针对某一类的模式或非模式对象执行某种操作的能力。

l         对象权限:针对某个特定的模式对象执行各种操作的权力

 

系统权限:这里只列出了一部分,打字实在很累。

权限

所能实现的操作

分析

 

ANALYZE ANY

分析数据库中的任何表、簇或索引

审计

 

AUDIT ANY

审计数据库中的任何模式对象

AUDIT SYSTEM

启用与停用语句和特权的审计选项

 

CREATE CLUSTER

在自有的模式中创建一个簇

CREATE ANY CLUSTER

在任何一个模式中创建一个簇;操作类似于

 

CREATE ANY TABLE

ALTER ANY CLUSTER

改变数据库中的任何一个簇

DROP ANY CLUSTER

删除数据库中的任何一个簇

数据库

 

ALTER DATA BASE

改变数据库;不管操作系统的特权,经由Oracle把文件添加到操作

 

系统中

数据库链接

 

CREATE DATABASE LINK

在自有模式中创建专用数据库链接

索引

 

CREATE ANY INDEX

在任何表的任何模式中创建一条索引

ALTER ANY INDEX

改变数据库中的任何索引

DROP ANY INDEX

删除数据库中的任何索引

 

CREATE LIBRARY

在自有模式中创建调出库

CREATE ANY LIBRARY

在任何模式中创建调出库

DROP LIBRARY

删除自有模式中的调出库

DROP ANY LIBRARY

删除任何模式中的调出库

特权

 

GRANT ANY PRIVILEGE

授予任何系统特权(不包括对象特权)

过程

 

CREATE PROCEDURE

在自有模式中创建存储的过程、函数和包

CREATE ANY PROCEDURE

在任何模式中创建存储的过程、函数和包(这要求用户还要有A LT E R

 

ANY TABLE BACKUP ANY TA B LE DROP ANY TABLE SELECT ANY

 

TABLE INSERT ANY TABLE UPDATE ANY TABLE DELETE ANY

 

TABLE GRANT ANY TABLE 特权

ALTER ANY PROCEDURE

编译任何模式中的任何存储的过程、函数或包

DROP ANY PROCEDURE

删除任何模式中的任何存储的过程、函数或包

EXECUTE ANY PROCEDURE

执行任何过程或函数(独立的或成组的),或在任何模式中引用任何

 

公共包变量

环境资源文件

 

CREATE PROFILE

创建环境资源文件

ALTER PROFILE

改变数据库中的任何环境资源文件

DROP PROFILE

删除数据库中的任何环境资源文件

ALTER RESOURCE COST

设置所有的用户会话中使用的资源开销

特权

所能实现的操作

公共数据库链接

 

CREATE PUBLIC DATABASE LINK

创建公共数据库链接

DROP PUBLIC DATABASE LINK

删除公共数据库链接

公共同义词

 

CREATE PUBLIC SYNONYM

创建公共同义词

DROP PUBLIC SYNONYM

删除公共同义词

角色

 

CREATE ROLE

创建角色

ALTER ANY ROLE

改变数据库中的任何一个角色

DROP ANY ROLE

删除数据库中的任何一个角色

GRANT ANY ROLE

授权数据库中的任何一个角色

回滚段

 

CREATE ROLLBACK SEGMENT

创建回滚段

ALTER ROLLBACK SEGMENT

改变回滚段

DROP ROLLBACK SEGMENT

删除回滚段

会话

 

CREATE SESSION

连接到数据库

ALTER SESSION

发出A LTER SESSION 语句

RESTRICTED SESSION

当数据库利用S TA RTUP RESTRICT 启动时进行连接(O S O P E R

 

O S D B A角色包含此特权)

序列

 

CREATE SEQUENCE

在自有模式中创建序列

CREATE ANY SEQUENCE

在任何模式中创建任何序列

ALTER ANY SEQUENCE

在任何模式中改变任何序列

DROP ANY SEQUENCE

在任何模式中删除任何序列

SELECT ANY SEQUENCE

在任何模式中引用任何序列

快照

 

CREATE SNAPSHOT

在自有模式中创建快照(用户还必须具有C R E ATE TA B L E 特权)

CREATE  ANY SNAPSHOT

在任何模式中创建快照(用户还必须具有CREATE ANY TABLE特权)

ALTER SNAPSHOT

改变任何模式中的任何快照

DROP ANY SNAPSHOT

删除任何模式中的任何快照

同义词

 

CREATE SYNONYM

在自有模式中创建同义词

CREATE ANY SYNONYM

在任何模式中创建任何同义词

DROP ANY SYNONYM

在任何模式中删除任何同义词

系统

 

ALTER SYSTEM

发出A LTER SYSTEM 语句

 

CREATE TABLE

在自有模式中创建表。还使被授权者能在自有模式下的表中创建索

 

引,包括那些用于完整性约束的索引(被授权者必须有表空间的定额

 

UNLIMITED TA B L E S PA C E 特权)

CREATE ANY TABLE

在任何模式中创建表(假如被授权者有C R E ATE ANY TA B L E 特权并

 

在另一个用户模式中创建了一张表,那么拥有者必须在那个表空间上

 

有空间定额。表的拥有者不必具有C R E AT [ANY] TA B L E 特权)

ALTER ANY TABLE

改变任何模式中的任何表并编译任何模式中的任何视图

BACKUP ANY TA B L E

在任何模式中使用表的导出工具执行一个增量导出操作

DROP ANY TA B L E

删除或截断任何模式中的任何表

LOCK ANY TA B L E

锁定任何模式中的任何表或视图

特权

所能实现的操作

COMMENT ANY TA B L E

对任何模式中的任何表、视图或列进行注释

SELECT ANY TA B L E

对任何模式中的任何表、视图或快照进行查询

INSERT ANY TA B L E

把行插入到任何模式中的任何表或视图中

UPDATE ANY TA B L E

修改任何模式中的任何表或视图中的行

DELETE ANY TA B L E

删除任何模式中的任何表或视图中的行

表空间

 

CREATE TABLESPACE

创建表空间;不管用户有何操作系统特权,经由O r a c l e把文件添加

 

到操作系统中

ALTER TABLESPACE

改变表空间;不管用户有何操作系统特权,经由O r a c l e把文件添加

 

到操作系统中

MANAGE TABLESPACE

使任何表空间脱机,使任何表空间联机,开始和结束对任何表空间

 

的备份

DROP TABLESPACE

删除表空间

UNLIMITED TABLESPACE

使用任何没有数量限制的表空间。此特权忽略了所分配的任何具体

定额。假如被取消的话,被授权者的模式对象仍然保留,但是进一步

的表空间分配被拒绝,除非这一分配是具体的表空间定额允许的。此

系统特权仅可以授予用户,而不授予角色。一般而言,应分配具体的

表空间定额,而不授予此系统特权

事务

 

FORCE TRANSACTION

强迫提交或回滚本地数据库中悬而未决的自有的分布式事务

FORCE ANY TRANSACTION

强迫提交或回滚本地数据库中悬而未决的任何分布式事务

触发器

 

CREATE TRIGGER

在自有模式中创建触发器

CREATE ANY TRIGGER

在任何模式中创建与任何模式的任何表相关的任何触发器

ALTER ANY TRIGGER

启用、停用或编译任何模式中的任何触发器

DROP ANY TRIGGER

删除任何模式中的任何触发器

用户

 

CREATE ANY USER

创建用户;分配任意表空间上的定额,设置缺省和临时表空间,指

 

定一个环境资源文件(在C R E ATE USER 语句中)

BECOME ANY USER

成为另一个用户(这是任何一个执行完全数据库导入的用户所需要的)

ALTER USER

改变其他用户:修改任意用户的口令或验证方法,分配表空间定额,

 

设置缺省或临时表空间,在A LTER USER 语句中指定环境资源文件与

 

缺省角色(不必改变自有口令)

DROP USER

删除另一个用户

视图

 

CREATE VIEW

在自有模式中创建视图

CREATE ANY VIEW

在任意模式中创建视图。要在另一个用户模式中创建视图,你必须

 

具有C R E ATE ANY VIEW 特权,拥用者必须在该视图引用的对象上具

 

有所需的特权

DROP ANY VIEW

删除任意模式中的任意视图

 

对象权限:

对象

适用对象

     允许操作

SELECT

表、视图、序列

查询

UPDATE

表、视图、字段

更新

DELETE

表、视图

删除

INSERT

表、视图、字段

插入

EXECUTE

存储过程、存储函数包

执行PL/SQL

READ

目录

读取目录

INDEX

建立索引

REFERENCE

表、字段

  外码能引用其字段

ALTER

表、序列

修改表、序列结构

如何授权,我们下次再说。



posted on 2006-08-06 15:19  coffeeliu  阅读(1564)  评论(3编辑  收藏  举报