Oracle中用户、权限、角色的创建

1、 创建用户、修改密码、删除用户

在 oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员sysdba)的权限才能使用。

问题:创建好的用户无法正常登录?
oracle 中用户建立后是无法正常登录的,只有在数据库管理员(DBA)对用户分配相应的权限后,用户才可以登录。

1)创建用户

语法结构:create user 用户名 identified by 密码 【default tablespace 表空间名】【temporary tablespace temp】

建议创建用户的时候指定表空间。

2)表空间

创建表空间

create tablespace temp datafile 'E:\oracle_tablespace\englishapp\temp.dbf' size 150M autoextend on next 5M maxsize 3000M;--自动增长

 

/*重新给用户PRDFPSRV指定默认表空间,必须是dba(数据库管理员sysdba)用户登录操作*/

alter user 用户 default tablespace 表空间;

 

//登录用户后,查看表当前所属表空间

select table_name,tablespace_name from user_tables;

//登录用户后,批量修改当前登录用户下的表存放的表空间,将以下查询出的语句复制出来再执行

SELECT 'alter table '||TABLE_NAME||' move tablespace 正确的空间名;' FROM USER_TABLES WHERE TABLESPACE_NAME = '错误的表空间名'

//对用户写的表插入数据显示ORA-01950对表空间XXX无权限;解决方案2种,如下:

解决方案1,登录dba(数据库管理员sysdba)用户,执行:

alter user 用户名 quota unlimited on 表空间;

 解决方案2,登录表空间对应的本身用户,执行:

grant unlimited tablespace to 用户名;

 

//删除表空间与表空间文件(注意:如果在创建表空间的时候带有双引号,则删除的时候也要带上)

DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;

前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除

drop tablespace temp including contents and datafiles cascade onstraints;

//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数

//including datafiles 删除表空间中的数据文件

//cascade constraints 同时删除tablespace中表的外键参照

 

3) 给用户修改密码

概述:一般以 dba 的身份(管理员用户sysdba),如果用其它用户去删除用户则需要具有 alter user权限。

语法结构:alter user 用户名 identified by 密码

  4)删除用户

概述:一般以 dba 的身份去删除某个用户,如果用其它用户去删除用户则需要具有 drop user 的权限。

注意:在删除用户时, 如果要删除的用户,已经创建了表, 那么就需要在删除的时候带一个参数 cascade; Cascade 有级联的作用

语法结构:drop user 用户名 [cascade]

  2、 给用户分配权限、角色

概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用使令 grant,回收权限使用命令 revoke。

可参考这篇:Oracle权限管理详解

赋权限语法结构:grant 权限/角色 to 用户名;

回收权限语法结构:revoke 权限/角色 from 用户名;

1)权限指执行特定类型SQL命令或访问其他对象的权利(系统权限、对象权限)

系统权限:允许用户执行某些数据库管理相关的权限

create session(登录权限)
create table(创建表权限)
create index(创建索引权限)
create view(创建视图权限)
create sequence(创建序列权限)
create trriger(创建触发器权限)

 

对象权限:允许用户对某一特定对象执行特定的操作,比如对表的增删改查(insert 增、delete 删、update 改、select 查);

--使用其他用户的sequence
1、
赋予权限:GRANT SELECT ON SEQ_NAME TO 数据库其他用户; 2、 撤销权限:REVOKE SELECT ON SEQ_NAME FROM XXX;
--使用其他用户的表
grant select, insert, update, delete, references, alter, index, debug, read on 表名 to 数据库其他用户;

 

  2)角色是具有名称的一组权限的组合,分为:预定义角色和自定义角色。

自定义角色:按需要定制一定权限形成角色,可以作为预定义角色的补充。来满足用户的需求。

预定义角色:把常用的权限集中起来,形成角色。常见的角色有:dba、connect、resource等;一般情况下普通用户有connect和resource的角色就够了。

CONNECT角色:临时用户,是授予用户的最基本的权利,能够连接到 oralce 数据库中,在对其他用户的表有访问权限时,做 SELECT、UPDATE、INSERTT 等操作。

Create session --建立会话;

Alter session --修改会话;

Create view --建立视图。

Create sequence --建立序列等权限

RESOURCE角色:更为可靠和正式的用户;具有创建表、序列、视图等权限。

Create table --建表;

Create trigger --建立促发器;

Create procedure --建立过程;

Create sequence --立序列;

Create type --建立类型等权限;

DBA角色:数据库管理员角色,拥有管理数据库的最高权限

 

posted @ 2021-12-13 12:45  Faith_zhang  阅读(2201)  评论(0编辑  收藏  举报