Oracle创建表空间和用户并分配权限

表空间名称:TableSpaceA

临时表空间:TEMP

用户名称:UserA 

用户密码:123456

表空间路径:D:\ORACLE\ORADATA

--1.创建表空间
CREATE TABLESPACE "TableSpaceA"
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\TableSpaceName.ora' SIZE 100M
AUTOEXTEND
ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO ;

--2.创建用户
CREATE USER "UserA" PROFILE "DEFAULT"
IDENTIFIED BY "123456" DEFAULT TABLESPACE "TableSpaceA"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK;

--3.用户授权

GRANT "CONNECT" TO "UserA" WITH ADMIN OPTION;

GRANT "DBA" TO "UserA" WITH ADMIN OPTION;
GRANT "RESOURCE" TO "UserA" WITH ADMIN OPTION;

说明:

(1)CONNECT 角色,拥有Connect权限的用户只可以登录ORACLE(仅具有创建SESSION的权限),不可以创建实体,不可以创建数据库结构。

(2)RESOURCE 角色,是授予开发人员的。拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色   

本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。

Create trigger--建立触发器;

Create sequence—建立序列;

Create type--建立类型;

Create procedure--建立过程;

Create cluster--建立聚簇;

Create operator--创建操作者;

Create indextype--创建索引类型;

Create table -- 建表

(3)DBA角色,是授予数据库维护人员的。拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

        从dba_sys_privs查看权限grantee privilege:Select grantee,privilege from dba_sys_privs

(4)Unlimited tablespace的特点: 

1、系统权限unlimited tablespace不能被授予role,只能被授予用户。也就是说,unlimited tablespace系统权限不能包含在一个角色role中 
2、unlimited tablespace没有被包括在resource role和dba role中,但是unlimited tablespace随着resource或者dba的授予而授予用户的。也就是说,如果将role角色授予了某个用户,那么这个用户将会拥有unlimited tablespace系统权限 
3、unlimited tablespace不能伴随这resource被授予role而授予用户。也就是说加入resource角色被授予了role_test角色,然后把role_test授予了test用户,但是此时unlimited tablespace没有被授予test用户

 

其他说明:

10g 开始,connect里面只有 create session权限了;
resource权限里没有 create view;
还需要重点说明下的是 unlimited tablespace(授予了resource权限给user, user1 其实自动有了unlimited tablespace权限)

 

posted @ 2020-08-28 16:28  云淡风轻~江哥  阅读(664)  评论(0编辑  收藏  举报