creatdep oracle_Oracle中的权限

在开发系统的过程中,不可避免的需要和其他的系统进行交互,这里一般采用接口的方式来进行交互,但是也有很多时候需要我们去创建用户和视图来供对方通过dblink的方式查询我们系统中的数据。这里就牵扯到了授权问题,应该给创建给对方使用的用户多大的权限呢。

Oracle权限允许用户访问属于其它用户的对象或执行程序,Oracle系统提供三种权限:Object 对象级、System 系统级、Role 角色级。这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。

对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。权限可以被授予,也可以用同样的方式撤销。

权限分类

1、系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。

2、实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

系统权限:

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

系统权限授权命令:

系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)

授权命令:SQL> grant connect, resource, 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> select * from session_privs; 删除用户SQL> drop user 用户名 cascade;  //加上cascade则将用户连同其创建的东西全部删除系统权限传递:增加WITH ADMIN OPTION选项,则得到的权限可以传递。SQL> grant connect, resorce to user50 with admin option;  //可以传递所获权限。系统权限回收:系统权限只能由DBA用户回收SQL> Revoke connect, resource from user50; 说明: 1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。

实体权限:

select, update, insert, alter, index, delete, all  //all包括所有权限

execute  //执行存储过程权限

user01:

SQL> grant select, update, 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则可以查到,因为他可以访问。

将表的操作权限授予全体用户:

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, table_name, privilege from user_tab_privs;    // 授出权限的表(授出的权限)

DBA用户可以操作全体用户的任意基表(无需授权,包括删除)

下面就是oracle的权限一览表:

权限

所能实现的操作

分析

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

在任何模式中创建存储的过程、函数和包(这要求用户还要有ALTER 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

当数据库利用STARTUP RESTRICT 启动时进行连接(OSOPER与

OSDBA角色包含此特权)

序列

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

发出ALTER SYSTEM 语句

CREATE TABLE

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

括那些用于完整性约束的索引(被授权者必须有表空间的定额或UNLIMITED TABLESPACE 特权)

CREATE ANY TABLE

在任何模式中创建表(假如被授权者有CREATE ANY TABLE 特权并在

另一个用户模式中创建了一张表,那么拥有者必须在那个表空间上有空间定额。表的拥有者不必具有CREAT [ANY] TABLE 特权)

ALTER ANY TABLE

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

BACKUP ANY TABLE

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

DROP ANY TABLE

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

LOCK ANY TABLE

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

特权

所能实现的操作

COMMENT ANY TABLE

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

SELECT ANY TABLE

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

INSERT ANY TABLE

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

UPDATE ANY TABLE

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

DELETE ANY TABLE

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

表空间

CREATE TABLESPACE

创建表空间;不管用户有何操作系统特权,经由Oracle把文件添加到操

作系统中

ALTER TABLESPACE

改变表空间;不管用户有何操作系统特权,经由Oracle把文件添加到操

作系统中

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

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

环境资源文件(在CREATE USER 语句中)

BECOME ANY USER

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

ALTER USER

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

缺省或临时表空间,在ALTER USER 语句中指定环境资源文件与缺省角色(不必改变自有口令)

DROP USER

删除另一个用户

视图

CREATE VIEW

在自有模式中创建视图

CREATE ANY VIEW

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

CREATE ANY VIEW 特权,拥用者必须在该视图引用的对象上具有所需的特权

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值