oracle 用户权限设置

create user +用户名 identified by +密码 default tablespace +表空间名称 temporary tablespace +临时表空间名称 –创建新用户  在oracle之后 普通用户的用户名必须以C##开头(如果不指定表空间,该用户的表空间为系统默认的表空间)

create tablespace +表空间名称 +datafile +存储路径+ size 表空间大小(单位m)–创建表空间

alter tablespace 旧名称 rename to 新名称–更改表空间名称’

创建用户后,该用户无任何权限,处于封存状态,需要授权

授权命令为 

grant  权限 to 用户名   –将权限赋予给哪个用户

grant create session to test  –给与创建链接权限    (基本权限,没有该权限用户无法链接数据库)

grant create table to test   –给与创建表格权限

grant unlimited tablespace to test –给与用户不受限制的表空间权限(慎重对待,一般用户表空间给与特定的表空间权限)

取消授权命令

revoke 权限 from 用户   — 将该用户的权限取消

revoke create session from test  — 取消创建链接的权限

。。。。

对特定对象的授权

对于a表,A用户向B用户授权(A用户必须是a的拥有者或者有该表授权的权限)(权限可以继承)

grant insert/update/select on 表名 to 用户名  将特定表的读取修改权限给与某用户

 

角色

角色就是一类权限的集合

将一个角色赋予某个用户,该用户就拥有了该角色的所有权限(批量授权)

create role +角色名      –创建一个角色

创建一个角色后,可以向该角色授权

grant 权限 to 角色名 

将角色赋予给用户

grant 角色名 to 用户名  –将该角色的所有权限给与该用户

drop 角色名  –删除该角色

 

 

 

查询用户拥有哪里权限:
SQL> select * from dba_role_privs;
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs;

 

增加WITH ADMIN OPTION选项,则得到的权限可以传递(继承)。

SQL> grant connect, resorce to user50 with admin option;  //可以传递所获权限。

 

select * from dba_users; 查看数据库里面所有用户
select * from all_users;  查看你能管理的所有用户
select * from user_users; 查看当前用户信息 

 

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

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

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

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

 

2、系统权限授权命令:
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]
授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]…;

[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]