站在巨人肩膀上看世界:设置oracle用户的权限方法总结
站在巨人肩膀上看世界:设置oracle用户的权限方法总结
设置oracle用户的权限,使得一个用户只可以在他自己的表空间有所有权限,可以产生表、视图、存贮过程什么的,也可以删除,也可以察看。但是其它的表空间他就没有任何权限,什么也看不到,什么也做不了?
方法1:
CREATE USER <username> QUOTA 0 K ON <tablespacename>
方法2:
不给用户resource权限,它就只能在自己的缺省表空间创建表
SQL> create user cp identified by cp
2 default tablespace ts1
3 temporary tablespace temp
4 quota unlimited on ts1;
SQL> grant connect to cp;
授权成功。
SQL> grant resource to cp;
授权成功。
SQL> connect cp/cp@orcl
已连接。
SQL> create table test (id char(10)) tablespace ts2;
表已创建。
SQL> connect system/manager@orcl
已连接。
SQL> revoke resource from cp;
撤销成功。
SQL> create table aatest (id char(10)) tablespace ts2;
create table aatest (id char(10)) tablespace ts2
*
ERROR 位于第 1 行:
ORA-01536: 超出表空间'TS2'的空间限量
SQL> create table aatest (id char(10)) tablespace ts1;
表已创建。
方法3:
用system/manager进OEM后,进行详细设计,方便直观
方法4:
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
方法5:
CREATE USER <username>
identified by pass
...
default role all; --所有角色
default role CONNECT,RESOURCE;
方法6:
-----------
revoke之后他还可以自由在那个表空间上操作吗?包括建新的对象、删除、修改什么的。
-----------
可以进行数据增删改。
但是数据库对象就不行了。
我们现场开发,和用户使用一个数据库,有时候进行resource的授权。
我们一般控制建立数据库对象的权限,而不是控制对象具体建立哪个表空间上。